portaldacalheta.pt
  • หลัก
  • การจัดการวิศวกรรม
  • Kpi และ Analytics
  • เทคโนโลยี
  • ว่องไว
เทคโนโลยี

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



เดือนที่ผ่านมานี้ เค้ก ทีมงานประกาศเปิดตัวรุ่นอัลฟาของ 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 เป็นที่นิยมแค่ไหน? ได้รับการจัดอันดับให้อยู่ในโครงการ PHP ยอดนิยม 4 อันดับแรกบน GitHub ประมาณ 130,000 โครงการโดยมีสมาชิกกว่า 18,000 คนในกลุ่ม CakePHP Google ที่มีหัวข้อ 32,000 หัวข้อ ด้วยผู้ร่วมให้ข้อมูล 270 คนในรหัสและผู้ร่วมให้ข้อมูล 320 รายในเอกสารจึงไม่มีการปฏิเสธว่า CakePHP มีผู้ติดตามจำนวนมาก ความนิยมที่แพร่หลายและเพิ่มขึ้นในปัจจุบันของ CakePHP สรุปได้ดีในบทความโดย เจมส์วัตต์ สมาชิกหลักและผู้จัดการชุมชนของ CakePHP สำหรับ มูลนิธิซอฟต์แวร์เค้ก ผู้ที่ฉันสัมภาษณ์ในระหว่างการเขียนบทความนี้

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



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

บทวิจารณ์นี้อ้างอิงจากเวอร์ชันอัลฟาของ 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 ตาม Edge Side ประกอบด้วย
  • API การกำหนดเส้นทางใหม่สำหรับการประกาศเส้นทางที่ง่ายและเร็วขึ้น

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

ทำไมต้อง CakePHP?

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

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

อนุสัญญามากกว่าการกำหนดค่า

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

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

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

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

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

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

วิธีใช้ twitter api ใน python
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 framework (เช่น นี้ และ ลาราเวล ) ที่ไม่ต้องพึ่งพาการประชุมมากนัก แต่ในความเป็นจริงแล้วอนุสัญญา CakePHP สามารถเป็นประโยชน์ได้มาก พวกเขาสามารถช่วยลดเวลาในการเพิ่มขึ้นอย่างมากสำหรับนักพัฒนา CakePHP เมื่อได้รับมอบหมายให้ปรับปรุงหรือบำรุงรักษาโค้ดที่เขียนโดยนักพัฒนารายอื่นเนื่องจากส่งผลให้โครงสร้างการเข้ารหัสและการประชุมที่สอดคล้องกันในหลาย ๆ นักพัฒนา CakePHP และโครงการต่างๆ

เทคนิคการคาดการณ์การขายข้อใดต่อไปนี้อาจมีอคติต่อการมองโลกในแง่ดี

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

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

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

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

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

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

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

ส่วนประกอบและตัวช่วย: ห้องสมุด CakePHP

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

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

การสุ่มตัวอย่างอย่างรวดเร็วของตัวช่วยที่มีประโยชน์อื่น ๆ ได้แก่ :

  • 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 อื่น ๆ อีกมากมายที่เกิดขึ้นตั้งแต่นั้นมา

ประสิทธิภาพของโหนด js เทียบกับ java

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

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

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


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

เมื่อใดที่ควรใช้ Google BigQuery

วิทยาศาสตร์ข้อมูลและฐานข้อมูล

เมื่อใดที่ควรใช้ Google BigQuery
ApeeScape เปิดตัว“ The กะทันหัน Remote Playbook” คู่มือที่ครอบคลุมสำหรับการทำงานจากระยะไกล

ApeeScape เปิดตัว“ The กะทันหัน Remote Playbook” คู่มือที่ครอบคลุมสำหรับการทำงานจากระยะไกล

อื่น ๆ

โพสต์ยอดนิยม
Nvidia Shield - สิ่งที่แตกต่างบนคอนโซลเกม Android
Nvidia Shield - สิ่งที่แตกต่างบนคอนโซลเกม Android
แผ่นโกงการจัดการโครงการ
แผ่นโกงการจัดการโครงการ
เริ่มต้นใช้งาน Microservices: บทช่วยสอน Dropwizard
เริ่มต้นใช้งาน Microservices: บทช่วยสอน Dropwizard
การแยกการเรียกเก็บเงิน: เรื่องของการเพิ่มประสิทธิภาพ API ภายใน GraphQL
การแยกการเรียกเก็บเงิน: เรื่องของการเพิ่มประสิทธิภาพ API ภายใน GraphQL
กรณีศึกษา: การใช้ ApeeScape เพื่อม้วนปลาใหญ่
กรณีศึกษา: การใช้ ApeeScape เพื่อม้วนปลาใหญ่
 
การประมาณต้นทุนซอฟต์แวร์ในการจัดการโครงการแบบ Agile
การประมาณต้นทุนซอฟต์แวร์ในการจัดการโครงการแบบ Agile
แชทล่ม - เมื่อ Chatbot ล้มเหลว
แชทล่ม - เมื่อ Chatbot ล้มเหลว
ที่ปรึกษาการระดมทุนกับนายหน้า - ตัวแทนจำหน่าย
ที่ปรึกษาการระดมทุนกับนายหน้า - ตัวแทนจำหน่าย
ทำให้ Web Front-end เชื่อถือได้ด้วย Elm
ทำให้ Web Front-end เชื่อถือได้ด้วย Elm
คู่มือสำหรับนักลงทุนเกี่ยวกับน้ำมันปาล์ม
คู่มือสำหรับนักลงทุนเกี่ยวกับน้ำมันปาล์ม
โพสต์ยอดนิยม
  • ค้นหาหน่วยความจำรั่วใน java
  • ที่ปรึกษา vs เครื่องคิดเลขเงินเดือนเต็มเวลา
  • วิธีปรับปรุงประสิทธิภาพของฐานข้อมูล
  • เส้นอุปสงค์ถูกสร้างขึ้นบนสมมติฐานที่ว่า
  • นักลงทุนเทวดามองหาอะไร
  • ตัวอย่างเว็บแอปพลิเคชัน spring mvc
  • ออกแบบแลนดิ้งเพจยังไงให้ดูดี
หมวดหมู่
  • การจัดการวิศวกรรม
  • Kpi และ Analytics
  • เทคโนโลยี
  • ว่องไว
  • © 2022 | สงวนลิขสิทธิ์

    portaldacalheta.pt