รีวิว CakePHP 3 ของฉัน – ยังสด ยังร้อนอยู่

เผยแพร่แล้ว: 2022-03-11

เดือนที่ผ่านมา ทีม CakePHP ได้ประกาศเปิดตัว CakePHP 3 รุ่นอัลฟ่า ทีมพัฒนา Cake ถือว่าเวอร์ชัน 3 เป็นตัวเปลี่ยนเกม ดังนั้นด้วยการเปิดตัวเวอร์ชันอัลฟ่าของเวอร์ชัน 3 ที่ตอนนี้กำลังร้อนแรงจากเตา บทความนี้จึงใช้เวลา รูปลักษณ์ใหม่ที่ CakePHP 3 เป็นเฟรมเวิร์กสมัยใหม่ที่มีประสิทธิภาพสำหรับการพัฒนา PHP

การรักษา CakePHP 3 นี้สดใหม่จากเตาอบ

ประวัติโดยย่อ

ทุกวันนี้ มีตัวเลือกมากมายในการพัฒนา PHP เมื่อ PHP เติบโตเต็มที่แล้ว PHP Frameworks ก็เข้ามามีบทบาทมากขึ้นเรื่อยๆ ทำให้นักพัฒนามีตัวเลือกมากมาย แต่มันก็ไม่ได้เป็นอย่างนั้นเสมอไป

ย้อนกลับไปในปี 2548 เมื่อ PHP 4 ยังคงเป็นมาตรฐาน ไม่มีกรอบงาน PHP และการพัฒนาวิธีการเข้ารหัสเชิงวัตถุใน PHP นั้นเป็นสิ่งที่ท้าทายอย่างแน่นอน ในตอนนั้นเองที่ CakePHP ก็ถือกำเนิดขึ้น ซึ่งเป็นเฟรมเวิร์ก PHP MVC ตัวแรกที่เคยมีมา ในเกือบ 10 ปีที่ผ่านมานับตั้งแต่เปิดตัวครั้งแรก CakePHP มีการพัฒนาอย่างต่อเนื่อง โดยรักษาส่วนแบ่งการตลาดที่ดีของนักพัฒนา PHP

เฟรมเวิร์ก CakePHP ได้รับความนิยมเพียงใด? ได้รับการจัดอันดับให้อยู่ใน 4 โครงการ PHP ที่ได้รับความนิยมสูงสุดบน GitHub จากโครงการประมาณ 130,000 โครงการโดยมีสมาชิกมากกว่า 18,000 คนในกลุ่ม CakePHP Google ด้วย 32,000 หัวข้อ ด้วยผู้ร่วมให้ข้อมูล 270 คนในโค้ด และ 320 ผู้มีส่วนร่วมในเอกสารประกอบ จึงปฏิเสธไม่ได้ว่า CakePHP มีผู้ติดตามจำนวนมาก ความนิยมที่เพิ่มขึ้นอย่างแพร่หลายและเพิ่มขึ้นในปัจจุบันของ CakePHP ได้รับการสรุปอย่างดีในบทความโดย James Watts สมาชิกหลักและผู้จัดการชุมชนของ CakePHP สำหรับ Cake Software Foundation ซึ่งฉันได้สัมภาษณ์ระหว่างการเขียนบทความนี้

ด้วยเวอร์ชัน 3 ของเฟรมเวิร์กที่พร้อมใช้งานแล้ว CakePHP คาดว่าจะยังคงเป็นผู้นำในโลกของ PHP และเป็นคู่แข่งสำคัญท่ามกลางภูมิทัศน์ที่หลากหลายของ PHP framework ในปัจจุบัน

มีอะไรใหม่ในเวอร์ชัน 3 ของ CakePHP

การตรวจสอบนี้อิงจาก CakePHP 3.0 รุ่นอัลฟ่า ซึ่งรวมเอาฟีเจอร์และการปรับปรุงใหม่จำนวนหนึ่งไว้ด้วยกัน ได้แก่:

  • ประสิทธิภาพที่ดีขึ้น เวอร์ชัน 3 รวมการปรับปรุงประสิทธิภาพให้กับกระบวนการบูตสแตรป กระบวนการเราต์ติ้ง และหลายส่วนของกระบวนการสำหรับการสร้างเท็มเพลตตัวช่วย

  • ส่วนประกอบและตัวช่วยที่ได้รับการปรับปรุง เวอร์ชัน 3 ให้การสนับสนุนขั้นสูงสำหรับ "ข้อความแฟลช" ด้วย FlashHelper และ FlashComponent ใหม่ นอกจากนี้ CookieComponent ยังได้รับการปรับปรุง ทำให้ง่ายต่อการแยกการกำหนดค่าของเนมสเปซคุกกี้และการจัดการข้อมูลคุกกี้

  • ปรับปรุงการจัดการเซสชั่น การจัดการเซสชันเป็นคลาสคงที่ใน CakePHP ซึ่งพิสูจน์แล้วว่ามีปัญหาในหลายวิธี ด้วยเวอร์ชัน 3 คุณสามารถเข้าถึงเซสชันได้จากอ็อบเจ็กต์คำขอ $this->request->session() การเปลี่ยนแปลงนี้ยังทำให้การทดสอบเซสชันง่ายขึ้น และช่วยให้ CakePHP ใช้ PHPUnit 4.x

  • ปรับปรุงความสอดคล้องของอนุสัญญา โครงร่างแอปพลิเคชันและโครงร่างปลั๊กอินได้รับการอัปเดตเพื่อใช้โครงสร้างไดเร็กทอรีเดียวกันเพื่อให้สอดคล้องกันมากขึ้น

  • รวมธีมและปลั๊กอิน เป้าหมายหลักของ CakePHP 3 คือการทำให้ธีมมีประสิทธิภาพและแข็งแกร่งยิ่งขึ้น จากการทำงานไปสู่เป้าหมายนั้น เห็นได้ชัดว่าสิ่งที่จำเป็นจริงๆ ก็คือสำหรับธีมที่จะให้ความสามารถเช่นเดียวกับปลั๊กอิน ดังนั้น ในตอนนี้ ปลั๊กอินใดๆ ก็สามารถใช้เป็นธีมได้ ซึ่งทำให้บรรจุภัณฑ์และการแจกจ่ายซ้ำง่ายขึ้น

  • การปรับปรุง ORM มีการเปลี่ยนแปลง API หลายอย่างใน ORM (การแมปเชิงวัตถุ) ที่โดดเด่นที่สุดคือตอนนี้การระบุการเชื่อมโยงเชิงลึกสำหรับการดำเนินการบันทึกทำได้ง่ายกว่า และมีการเปลี่ยนแปลงอนุสัญญาสองสามข้อเพื่อลดช่วงการเรียนรู้และความสับสนระหว่างผู้ใช้ใหม่

นอกจากนี้ยังมีคุณสมบัติเพิ่มเติมบางอย่างที่วางแผนไว้ว่าจะรวมเข้ากับรุ่นเบต้าของเวอร์ชัน 3.0 ด้วย ที่สำคัญที่สุดคือ:

  • การปรับปรุงคุณสมบัติความเป็นสากลและการแปลเป็นภาษาท้องถิ่น (i18n และ L10n)
  • การแทนที่ CacheHelper ตามขอบด้านรวม
  • API การกำหนดเส้นทางใหม่สำหรับการประกาศเส้นทางที่ง่ายและรวดเร็วขึ้น

อันที่จริงเวอร์ชัน 3 แสดงถึงการอัปเกรดที่สำคัญกว่า CakePHP เวอร์ชันก่อนหน้า

ทำไมต้อง CakePHP?

แม้ว่า CakePHP จะมีคุณสมบัติที่ยอดเยี่ยมมากมาย แต่บทวิจารณ์นี้จะเน้นที่คุณสมบัติบางอย่างโดยเฉพาะที่ช่วยแยกความแตกต่างออกไป กล่าวคือ:

  • อนุสัญญาเกี่ยวกับการกำหนดค่า
  • ORM ของ CakePHP (การทำแผนที่เชิงวัตถุ)
  • ส่วนประกอบและตัวช่วย

อนุสัญญาเกี่ยวกับการกำหนดค่า

CakePHP เป็นเรื่องเกี่ยวกับการพัฒนาที่รวดเร็วและสม่ำเสมอมาโดยตลอด และในท้ายที่สุด CakePHP ให้ความสำคัญกับการประชุมเป็นอย่างมาก ดังนั้น เช่นเดียวกับ Ruby on Rails (ซึ่ง CakePHP ได้แรงบันดาลใจจากมันมาก) CakePHP ยึดถือหลักการของการกำหนดค่าอย่างมาก

แบบแผนหมายความว่านักพัฒนาซอฟต์แวร์ไม่ต้องนึกถึง "สิ่งที่จะไป" เมื่อเรียนรู้วิธีใช้เฟรมเวิร์ก CakePHP เนื่องจากมีการกำหนดค่าเริ่มต้นสำหรับกฎเหล่านี้แล้ว แม้ว่าเราจำเป็นต้องทำความคุ้นเคยกับข้อตกลง CakePHP แต่เมื่อเข้าใจแล้ว นักพัฒนาก็สามารถมุ่งความสนใจไปที่การพัฒนาหลัก แทนที่จะต้องกังวลว่าโค้ดจะถูกวางไว้ที่ใดและปัญหาการกำหนดค่าอื่นๆ

ข้อตกลงของ CakePHP นั้นตรงกันข้ามกับ PHP อย่างสิ้นเชิง ซึ่งเป็นภาษาที่ค่อนข้างเสรี อันเป็นผลมาจากข้อตกลงนี้ CakePHP ช่วยให้มั่นใจถึงความสอดคล้องกันมากขึ้นในรูปแบบและโครงสร้างการเข้ารหัสในนักพัฒนาหลายรายและแม้กระทั่งในหลายทีม ด้วยการใช้ชุดมาตรฐาน Cake มุ่งมั่นที่จะทำให้การพัฒนามีความสอดคล้องกันมากขึ้น

สำหรับสคีมาฐานข้อมูล ตัวอย่างเช่น CakePHP ตั้งสมมติฐานเริ่มต้นบางประการในแง่ของการตั้งชื่อตัวแปร ชื่อตาราง และฟิลด์บางรายการ โดยเฉพาะเค้กคาดหวังว่า:

  • ชื่อตารางจะเป็นพหูพจน์ (เช่น orders )
  • ชื่อของฟิลด์คีย์หลักจะเป็น id
  • ชื่อของฟิลด์คีย์นอกใด ๆ จะขึ้นอยู่กับชื่อตารางที่อ้างอิงตามด้วย _id (เช่น คีย์นอกในตาราง customers จะมีชื่อว่า customer_id )

เพื่อให้เห็นภาพ ให้พิจารณาการทบทวนสองตารางอย่างง่าย ( articles และ users ) จากฐานข้อมูลโพสต์บล็อก ในตัวอย่างของเรา เราจะบอกว่าบทความ "เป็นของ" Users และ Articles " Articles " ของผู้ Users ความสัมพันธ์เหล่านี้จะถูกระบุดังนี้ใน CakePHP 3.0:

 In ArticlesTable.php: class ArticlesTable extends Table { public function initialize(array $config) { $this->belongsTo('Users'); } } In UsersTable.php: class UsersTable extends Table { public function initialize(array $config) { $this->hasMany('Articles'); } }

CakePHP ถือว่าเป็นไปตามข้อตกลงเริ่มต้น และด้วยเหตุนี้จึงรู้โดยอัตโนมัติว่าคีย์ภายนอกใดที่จะมองหา (เช่น user_id ในตาราง articles ) เมื่อดึงข้อมูลการเชื่อมโยงใดๆ

สิ่งสำคัญคือต้องเน้นว่า CakePHP 3 อนุญาตให้ มี การแทนที่แบบแผนเริ่มต้นได้อย่างง่ายดาย ตัวอย่างเช่น สมมติว่าคีย์ต่างประเทศของเราในตาราง users เรียกว่า author_id แทนที่จะเป็น user_id การระบุสิ่งนี้จะต้องมีการเปลี่ยนแปลงเล็กๆ น้อยๆ สองอย่างต่อไปนี้ในโค้ดของเรา เพื่อให้ CakePHP รู้ว่าเราไม่ได้ใช้ค่าเริ่มต้น:

 In ArticlesTable.php: class ArticlesTable extends Table { public function initialize(array $config) { $this->belongsTo('Users' => ['foreignKey' => 'author_id']); } } In UsersTable.php: class UsersTable extends Table { public function initialize(array $config) { $this->hasMany('Articles' => ['foreignKey' => 'author_id']); } }

ดังนั้น แม้ว่าแบบแผนจะเป็นส่วนสำคัญของ CakePHP และมีข้อดีของมันอย่างแน่นอน การแทนที่เมื่อจำเป็นนั้นค่อนข้างง่าย ดังที่เราได้แสดงไว้ที่นี่

แม้ว่านักพัฒนาบางคนอาจชอบเฟรมเวิร์ก PHP (เช่น Yii และ Laravel) ที่ไม่ต้องพึ่งพาแบบแผนมากนัก อันที่จริงแล้ว แบบแผนของ CakePHP ก็มีประโยชน์มากทีเดียว พวกเขาสามารถช่วยลดเวลาเพิ่มสำหรับนักพัฒนา CakePHP เมื่อได้รับมอบหมายให้ปรับปรุงหรือดูแลโค้ดที่เขียนโดยนักพัฒนารายอื่น เนื่องจากจะส่งผลให้โครงสร้างการเข้ารหัสและข้อตกลงสอดคล้องกันในนักพัฒนาและโครงการ CakePHP หลายราย

การทำแผนที่เชิงวัตถุของ CakePHP (ORM)

การทำแผนที่เชิงวัตถุ (ORM) ของ CakePHP ได้รับประโยชน์อย่างมากจากแบบแผนของเฟรมเวิร์กของ CakePHP ด้วยการกำหนดสคีมาฐานข้อมูลให้เป็นมาตรฐานของ Cake คุณสามารถเชื่อมต่อตารางเข้าด้วยกันอย่างรวดเร็วผ่าน ORM อันทรงพลังของ Cake คุณแทบจะไม่ต้องเขียนคำสั่ง SQL เนื่องจาก CakePHP จัดการสิ่งต่างๆ เช่น การรวมตาราง, hasMany และแม้แต่ความสัมพันธ์ hasAndBelongsToMany ได้อย่างง่ายดาย

ใช้ประโยชน์จาก ContainableBehavior ของ CakePHP ผ่านการเชื่อมโยงแบบจำลองของคุณ คุณสามารถระบุตารางฐานข้อมูลและฟิลด์ที่จะเลือกจากการสืบค้น SQL สิ่งนี้สามารถอธิบายได้ลึกหลายตาราง และด้วย ORM จะสร้างคำสั่ง SQL ที่มีความซับซ้อนสูงได้อย่างรวดเร็ว

อนึ่ง ContainableBehavior ของ CakePHP เป็นตัวอย่างที่ดีของวิธีที่ CakePHP สามารถทำให้การพัฒนา PHP ง่ายขึ้นและเพิ่มความคล่องตัว ช่วยให้คุณค้นหาและกรองข้อมูลด้วยวิธีที่สะอาดและสม่ำเสมอ และยังช่วยเพิ่มความเร็วและประสิทธิภาพโดยรวมของแอปพลิเคชันของคุณได้อีกด้วย (ทำงานโดยการเปลี่ยนแปลงการเชื่อมโยงแบบจำลองของคุณชั่วคราวหรือถาวร โดยใช้การกักเก็บที่ให้มาเพื่อสร้างชุดการเรียก bindModel และ unbindModel ที่สอดคล้องกัน)

ความท้าทายของ ORM คือทำให้การใช้ SQL เป็นเรื่องง่าย โดยที่หากนักพัฒนาไม่ระมัดระวัง เขาหรือเธอสามารถเขียนคำสั่ง SQL ที่ไม่มีประสิทธิภาพได้โดยไม่มีความหมาย ฉันเคยเห็นแอปพลิเคชัน Cake ที่เขียนไม่ดีมาหลายครั้งแล้วซึ่งไม่ได้ทำให้การสืบค้นของพวกเขาคล่องตัวขึ้น ปัญหาเหล่านี้มักจะปรากฏขึ้นภายในสองสามปีหลังจากที่ระบบได้ติดตั้งใช้งาน เมื่อฐานข้อมูลมีขนาดใหญ่ขึ้นและข้อความค้นหาที่เขียนไม่ดีจะช้ามากขึ้นเรื่อยๆ

ปัญหาหลักในที่นี้คือ ก่อนหน้า CakePHP เวอร์ชัน 3 ล่าสุด ORM ของ Cake จะดึงตาราง ที่ เกี่ยวข้องโดยค่าเริ่มต้นเมื่อดำเนินการค้นหา ผลที่ได้คือ แบบสอบถาม "ค้นหาทั้งหมด" แบบธรรมดาอาจค่อนข้างบวม เนื่องจาก SQL พื้นฐานจะดึงข้อมูล ทั้งหมด จากตารางที่เกี่ยวข้อง ทั้งหมด ในเวอร์ชัน 3 ลักษณะการทำงานนี้ไม่ใช่ค่าเริ่มต้นอีกต่อไป (และใน CakePHP เวอร์ชันก่อน ลักษณะการทำงานเริ่มต้นนี้ง่ายต่อการปิดการใช้งานโดยเพียงแค่เพิ่ม public $recursive = -1; ลงในไฟล์ AppModel.php หลักของคุณ)

โดยรวมแล้ว การทบทวน ORM ของ Cake แสดงให้เห็นว่าช่วยปรับปรุงการพัฒนาได้จริง และหากใช้อย่างถูกต้อง เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสร้างการสืบค้นข้อมูลที่ซับซ้อนอย่างรวดเร็ว อย่างไรก็ตาม เป็นสิ่งสำคัญที่นักพัฒนาจะต้องใช้เวลาในการทำความเข้าใจ ORM อย่างเต็มที่ และเพื่อให้แน่ใจว่าคำค้นหาของพวกเขาได้รับการปรับให้เหมาะสมที่สุด (ตามที่เป็นจริงในภาษาใดๆ)

ส่วนประกอบและตัวช่วย: CakePHP Libraries

หนึ่งในคุณสมบัติที่ยอดเยี่ยมของ CakePHP คือไลบรารีในตัว – Components and Helpers – ที่ช่วยขจัดงานการพัฒนาที่น่าเบื่อ ซ้ำซาก และน่าเบื่อ ในบริบทของ MVC คอมโพเนนต์ช่วยปรับปรุงการพัฒนาคอนโทรลเลอร์ ในขณะที่ Helpers ช่วยลดความซับซ้อนของการเข้ารหัสและตรรกะในการดู (เช่น เลเยอร์การนำเสนอ)

ตัวอย่างเช่น PaginatorComponent สร้างอินเทอร์เฟซหน้าถัดไป/ก่อนหน้าอย่างน่าอัศจรรย์โดยอัตโนมัติจากการค้นหาข้อความค้นหา เพิ่ม JsHelper และทันใดนั้นคุณมี AJAX Pagination ซึ่งขับเคลื่อนโดยกรอบงาน JavaScript ที่คุณชื่นชอบ (jQuery โดยค่าเริ่มต้น)

ตัวอย่างด่วนของ Helpers ที่มีประโยชน์อื่น ๆ รวมถึง:

  • TimeHelper : ทำให้การแสดงวันที่และเวลาเป็นเรื่องง่าย โดยมีชุดฟังก์ชันสำหรับการจัดรูปแบบและการประเมินค่าของเวลา
  • NumberHelper : ให้วิธีการที่สะดวกในการแสดงตัวเลขในรูปแบบทั่วไป (หรือกำหนดเอง) และความแม่นยำที่หลากหลาย
  • TextHelper : ช่วยในการเปิดใช้งานลิงก์ จัดรูปแบบ URL สร้างข้อความที่ตัดตอนมารอบคำหรือวลีที่เลือก เน้นคำสำคัญในกลุ่มข้อความ และตัดข้อความยาวเหยียดอย่างสง่างาม

และยังมีอีกมากมาย

คำติชมของ CakePHP 3

เพื่อให้แน่ใจว่า ทุกเฟรมเวิร์กมีข้อดีและข้อเสีย และ CakePHP ก็ไม่มีข้อยกเว้น ต่อไปนี้เป็นคำวิพากษ์วิจารณ์ทั่วไปบางส่วนในระดับที่ CakePHP นอกเหนือจากการตรวจทานนี้:

  • “กรอบการทำงานเดิม บวมและช้า” คำวิจารณ์นี้มักจะเป็นมากกว่าประวัติศาสตร์ โดยมีความจริงอย่างจำกัด (ถ้ามี) ในปัจจุบัน การสนับสนุนเวอร์ชัน PHP ย้อนหลังไปถึง PHP 4 ได้กำหนดให้ CakePHP ในอดีตจัดการกับปัญหาเดิมของ PHP จำนวนมาก ด้วยการพัฒนาของ PHP และโดยเฉพาะอย่างยิ่งการเปิดตัว CakePHP เวอร์ชัน 3 ข้อกล่าวหานี้สูญเสียความถูกต้องไปจริงๆ

  • “เข้มงวดเกินไปและจำกัด” แม้ว่าจะมีข้อดีที่ชัดเจนสำหรับอนุสัญญา CakePHP แต่ก็มีผู้ที่วิพากษ์วิจารณ์พวกเขา นักวิจารณ์มักโต้แย้งว่าอนุสัญญาเข้มงวดเกินไป แต่พวกเขาล้มเหลวที่จะรับรู้ (หรือรับทราบ) ว่าอนุสัญญาเหล่านี้ สามารถ แทนที่ได้อย่างง่ายดาย ด้วยการนำชุดมาตรฐานมาใช้ Cake พยายามทำให้การพัฒนามีความสอดคล้องกัน ซึ่งหากพิจารณาจากแนวทางปฏิบัติในการเขียนโค้ดแบบหลวมๆ ของ PHP แล้ว ก็ควรถูกมองว่าเป็นผลดีเท่านั้น

  • “รอบการปล่อยช้า”. รอบการเปิดตัวที่ช้าไม่จำเป็นต้องแย่เสมอไป ในทางกลับกัน วงจรการปล่อยที่ก้าวร้าวเกินไปจริงๆ แล้วอาจสร้างปัญหาได้มากกว่า อันที่จริง สาเหตุส่วนหนึ่งที่ CakePHP รุ่นใหญ่ต้องใช้เวลาคือเพื่อให้แน่ใจว่าความเข้ากันได้ย้อนหลังกับ PHP เวอร์ชันก่อนหน้าซึ่งยังคงมีการใช้งานกันอย่างแพร่หลาย นอกจากนี้ รอบการเผยแพร่ที่ระมัดระวังและการเน้นที่ความเข้ากันได้แบบย้อนหลังช่วยขจัดความจำเป็นในการเปลี่ยนแปลงโค้ดของคุณ (และบ่อยครั้ง) ที่สำคัญเมื่อมีการเผยแพร่เวอร์ชันใหม่ นอกจากนี้ ควรสังเกตด้วยว่าทีม CakePHP 3 นั้นไม่มีอะไร แต่ ช้าเมื่อพูดถึงรุ่นย่อย (การแก้ไขข้อผิดพลาด แพตช์ การปรับปรุงเล็กน้อย ฯลฯ ) ซึ่งออก ทุกเดือน . ในทำนองเดียวกัน ตั๋วบั๊กส่วนใหญ่จะได้รับคำตอบภายในไม่ กี่ชั่วโมงหลังจาก โพสต์

  • “ไม่ใช่วิธีแก้ปัญหาแบบสำเร็จรูป” ตรงกันข้ามกับเฟรมเวิร์ก PHP "เว็บแอปนอกกรอบ" ที่ทันสมัยอื่น ๆ (เช่น Yii เป็นต้น) CakePHP มุ่งมั่นที่จะสนับสนุนและเปิดใช้งานโซลูชันที่กำหนดเอง ฉันได้รับประโยชน์อย่างมากจากสิ่งนี้โดยส่วนตัวในการพัฒนาเว็บไซต์และแอปพลิเคชั่นขนาดใหญ่ กำหนดเอง และขับเคลื่อนด้วยฐานข้อมูล

  • “ใช้อาร์เรย์ข้อมูลมากกว่าวัตถุ” สิ่งนี้ไม่เป็นความจริงอีกต่อไป ในเวอร์ชัน 3 ในเวอร์ชันก่อนหน้า ข้อมูลใด ๆ จะต้องได้รับการจัดเก็บและอ้างอิงเป็นอาร์เรย์ที่ซ้อนกัน (เช่น $user['User']['username'] ) ในที่สุด CakePHP 3 ก็จัดการสิ่งนี้ แทนที่จะจัดเก็บข้อมูลเป็นวัตถุ (เช่น $user->username )

  • “เอกสารไม่ดี” คำวิจารณ์นี้มีเหตุผลบางประการ โดยในเอกสารประกอบของ CakePHP นั้นไม่ได้เขียนขึ้นโดยคำนึงถึงมือใหม่เสมอไป (บางครั้งจะมีการกล่าวถึงข้อมูลสำคัญในประโยคหนึ่งหรือสองประโยค ในขณะที่การอภิปรายสองสามย่อหน้าอาจได้รับการรับประกัน ). ทีมพัฒนา Cake รับทราบเรื่องนี้แล้วและกำลังดำเนินการปรับปรุงเอกสารดังกล่าว อันที่จริง หน้าแรกของเอกสารประกอบ CakePHP 3 ระบุอย่างชัดเจนถึงความมุ่งมั่นในระดับสูงต่อ "คุณภาพ ความถูกต้อง และความถูกต้อง" ของเอกสาร เนื่องจาก CakePHP เป็นเฟรมเวิร์กที่ขับเคลื่อนโดยชุมชน ปุ่ม "ปรับปรุงเอกสารนี้" จึงมีให้ใน ทุก หน้าของเอกสาร เปิดใช้งานและสนับสนุนให้ผู้ใช้ CakePHP มีส่วนร่วมในการเพิ่ม ลบ หรือแก้ไขเอกสารด้วยตนเอง

บทสรุป

สรุปแล้ว เกือบ 10 ปีหลังจากการเปิดตัวครั้งแรก การทบทวน CakePHP เผยให้เห็นว่ายังคงเป็นคู่แข่งที่แข็งแกร่งและแข็งแกร่งสำหรับเฟรมเวิร์ก PHP อื่นๆ อีกมากมายที่ปรากฏขึ้นตั้งแต่นั้นมา

CakePHP เป็นโซลูชันการพัฒนาที่สมบูรณ์และครอบคลุม ฐานโค้ดมีความสมบูรณ์และฟังก์ชันการทำงานดูเหมือนไม่มีที่สิ้นสุด โดยรวมแล้ว Cake ถูกสร้างขึ้นเพื่อให้การพัฒนารวดเร็ว ซึ่งไม่เพียงแค่สำคัญสำหรับนักพัฒนาซอฟต์แวร์เท่านั้น แต่สำหรับนักลงทุนด้วย ต้นทุนที่ใหญ่ที่สุดของการพัฒนาซอฟต์แวร์คือต้นทุนของเวลาในการพัฒนา และ CakePHP มีเป้าหมายเพื่อลดเวลาในการพัฒนาอย่างมาก

CakePHP เป็นโครงการที่ดำเนินการโดยชุมชน มันจะดีขึ้นได้เมื่อมีผู้คนเข้ามามีส่วนร่วมมากขึ้นเรื่อยๆ มีส่วนร่วมเป็นเวลา 7 ปีและเห็นว่าชุมชนเติบโตขึ้นเรื่อยๆ ฉันตื่นเต้นกับขั้นตอนถัดไปสำหรับ CakePHP การเปิดตัว CakePHP 3 และการเติบโตของทั้ง PHP และ CakePHP หมายความว่าเฟรมเวิร์กจะดีขึ้นเรื่อย ๆ

หากคุณกำลังมองหาโซลูชันที่ใช้ PHP ที่ให้ประโยชน์มากมายที่คล้ายกับ Ruby on Rails (ในแง่ของความง่ายในการใช้งานและแบบแผนมากกว่าการกำหนดค่า) ให้ลองใช้ CakePHP บทแนะนำบล็อก CakePHP ใช้เวลาเพียงไม่กี่นาทีในการตั้งค่าและเรียกใช้ หรืออีกวิธีหนึ่งคือ CakeCoded มีชุดบทเรียนที่ชัดเจนเพื่อช่วยให้นักพัฒนา PHP คุ้นเคยกับ CakePHP และเริ่มต้นใช้งาน ด้วยแหล่งข้อมูลเหล่านี้ คุณจะเห็นได้อย่างรวดเร็วว่า CakePHP สามารถเพิ่มความเร็วและปรับปรุงความพยายามในการพัฒนาซอฟต์แวร์ PHP ของคุณได้อย่างรวดเร็วเพียงใด สนุก!


Michael Houghton เป็นวิศวกรระดับสูงสุดในไอร์แลนด์ด้วยประสบการณ์ CakePHP ที่กว้างขวาง เขาได้พัฒนาเว็บไซต์มากกว่า 100 แห่งด้วยเฟรมเวิร์ก ทำงานร่วมกับทีมที่ CakeDC (หน่วยงานเชิงพาณิชย์ที่อยู่เบื้องหลังเฟรมเวิร์ก CakePHP) ได้ส่งแพตช์ต่างๆ และช่วยเกี่ยวกับเอกสาร CakePHP