กรอบการทำงานจำเป็นใน PHP หรือไม่ [ปิด]


9

เฟรมเวิร์กจำเป็นจริงๆใน PHP หรือไม่?

ข้อดีและข้อเสียของการใช้มีอะไรบ้าง


2
เมื่อเร็ว ๆ นี้พบกับโพสต์ SO นี้ซึ่งมีลักษณะค่อนข้างชาญฉลาดเกี่ยวกับการใช้ PHP โดยไม่มีเฟรมเวิร์ก Stackoverflow.com/questions/3655145/ …
Matt Molnar

คำตอบ:


17

ไม่ แต่พวกเขาก็ดี

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

ข้อด้อย : การไม่ได้สร้างรหัสด้วยตัวเองอาจเป็นการสูญเสียในระดับความเข้าใจที่ดีขึ้นเกี่ยวกับรากฐานที่โครงการของคุณดำเนินงานอยู่


1
แต่ปัญหาก็คือว่าในแต่ละวันมี alots กรอบ i dont รู้ที่หนึ่งใช้
Tayyab Gulsher Vohra

4
@Tayyab คุณต้องใช้ `em all!
Arnis Lapsa

1
การเลือกเฟรมเวิร์กสำหรับคุณที่จะตัดสินใจขึ้นอยู่กับความต้องการของแอปพลิเคชันของคุณและสไตล์การเขียนโค้ดของคุณ ถามตัวเองด้วยคุณต้องมีกรอบในการหมุนแอพของคุณเองหรือ CMS (Joomla, Drupal ฯลฯ ) หรือไม่?
Darren Newton

2
คุณต้องระวังเกี่ยวกับ "ไม่ทราบที่ไม่รู้จัก" หากคุณไม่ใช้เฟรมเวิร์กความเสี่ยงในการลืมหรือไม่ทราบเกี่ยวกับบางสิ่งที่เฟรมเวิร์กแก้ปัญหาสำหรับคุณนั้นใหญ่มาก ตัวอย่างเช่นคุณจัดการกับการป้องกันการโจมตี CSRF อย่างถูกต้องหรือไม่ แอปของคุณจะทำงานโดยไม่มีการป้องกัน แต่จะถูกแฮ็คได้ง่าย การเลือกเฟรมเวิร์กหลัก (หนึ่งในนั้น) หมายความว่าคุณได้รับประโยชน์จากทุกสิ่งที่เว็บแอปต้องกังวลด้วยแม้ว่าคุณจะยังไม่ได้เรียนรู้ก็ตาม
Joeri Sebrechts

9

กรอบการทำงานของเว็บแอปพลิเคชันนั้นดีเหมือนประสบการณ์ของคุณกับพวกเขา

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

เราจะใช้ประโยชน์จากเฟรมเวิร์กได้อย่างไร

คุณจะต้องสร้างแอปพลิเคชั่นที่น่ากลัวและย้ำจำนวนหนึ่ง ในที่สุดคุณจะเข้าใจถึงนิสัยใจคอและการใช้เฟรมเวิร์กจะช่วยให้คุณมีเวลาในการพัฒนาที่สั้นลง

คุณควรใช้เฟรมเวิร์ก PHP หรือไม่?

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

นี่คือกราฟที่เป็นประโยชน์:

ป้อนคำอธิบายรูปภาพที่นี่


7

จากข้อมูลของRasmus Lerdorfคุณไม่จำเป็นต้องมีเฟรมเวิร์กเพิ่มเติมเนื่องจาก PHP เป็นเฟรมเวิร์ก http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html


คนดีฉันเป็นใหญ่และฉันพยายามที่จะเขียนรหัสฉันยังใหม่กับมันและฉันต้องการที่จะเป็นนักพัฒนาหลักของ php ดังนั้นได้โปรดแนะนำฉัน
Tayyab Gulsher Vohra

3
บทความนั้นมาจากปี 2549 และล้าสมัยไปแล้ว
Jonathan Rich

1
@ JonathanRich: บทความนั้นอาจจะล้าสมัย แต่ก็ยังน่าสนใจอยู่ดี!

4

มันขึ้นอยู่กับขนาดของโครงการของคุณ โฮมเพจที่ไม่มีฐานข้อมูลและไม่เกิน 10 หน้าเฟรมเวิร์กจะมากเกินไปส่วนใหญ่เป็นเพราะ framewroks ต้องการการกำหนดค่าและการปรับแต่งจำนวนมากในกรณีส่วนใหญ่เพื่อให้เหมาะกับความต้องการเฉพาะ และในบางสถานการณ์พวกเขาอาจช้ากว่าหน้าเว็บหลายหน้าเล็กน้อยที่รวมอยู่ในไฟล์ (คิดว่ากรอบทั้งหมดจำเป็นต้องโหลดเพื่อใช้คุณลักษณะของมัน)

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

มีข้อดีและข้อเสียอื่น ๆ อีกมากมาย แต่สิ่งเหล่านี้เป็นสิ่งที่อยู่ในใจของฉันก่อน

แก้ไข: ฉันใช้กรอบ symfony ในฐานรายวันและทำงานกับ php สำหรับมหาวิทยาลัย (ฉันมีหลักสูตรเกี่ยวกับการพัฒนาเว็บที่ไม่ได้รับอนุญาตให้ใช้กรอบงานใด ๆ ) ดังนั้นสิ่งนี้ส่วนใหญ่มาจากประสบการณ์นั้น


1
ดีฉันเป็นผู้เริ่มต้นใน php และยังไม่ได้พัฒนาสิ่งใดที่ยิ่งใหญ่และฉันสับสนว่าจะใช้อะไรและฉันควรจะไปเพื่ออะไรจริงๆฉันว่างเปล่าโดยสิ้นเชิง
Tayyab Gulsher Vohra

ขั้นตอนแรกจะไม่ใช้พวกเขาเรียนรู้เทคโนโลยีและวิธีการทำงาน (php, framework, js, css, ฯลฯ ) จากนั้นเมื่อคุณเข้าใจพื้นฐานของการเขียนโปรแกรม php แล้วใช้เฟรมเวิร์กเช่น Zend หรือ Symfony หรือ CakePHP เพื่อเรียนรู้ วิธีเพิ่มแอปพลิเคชั่นของคุณ
guiman

2

คุณล้อเล่นใช่ไหม?

ความจำเป็นขึ้นอยู่กับการใช้งาน คอมพิวเตอร์ไม่จำเป็นต้องมีเพื่อมนุษยชาติทั้งรถยนต์และอื่น ๆ

สำหรับข้อดี / ข้อเสียสำหรับแต่ละคนนั้นเป็นของตัวเอง!

ฉันต้องการแสดงตัวอย่างโค้ดนอกกรอบงานของฉัน:

class Product extends DatabaseRow {
    public $name='';
    public $price=0.0;
    public $images=array();
    public $description='';
    public table(){
        return 'products';
    }
}

$p=new Product();
$p->name='Bread';
$p->price=0.5;
$p->images=array('loaf1.jpg','bakery.jpg');
$p->description='Our premium diet bread.';
$p->save();

ดูสิ่งที่ฉันทำที่นั่น? คลาสนั้นทำหน้าที่เป็นแบบจำลองสำหรับร้านค้า มีอะไรพิเศษนอกเหนือจาก OO? ถ้าตารางหรือคอลัมน์ใด ๆ ไม่มีอยู่มันจะถูกสร้างขึ้นแบบไดนามิก 0 สคริปต์การติดตั้ง แน่นอนว่านี่เป็นคุณสมบัติเฉพาะในกรอบงานของฉัน แต่คุณได้รับความคิด


ฉันอยากจะบอกคุณว่ามีบางสิ่งที่จริง ๆ แล้วฉันกำลังใช้ 2 เฟรมเวิร์กตัวหนึ่งคือ codeigniter และอีกอันคือ yii และฉันต้องการที่จะเป็นนักพัฒนาหลัก แต่แนวคิดของ OOP ของฉันไม่ดีจริงความจริงก็คือ
Tayyab Gulsher Vohra

คุณแยกความแตกต่างระหว่างคำสั่ง 'UPDATE' และ 'INSERT' ในวิธี $ p-> save () ได้อย่างไร
Srisa

@Srisa - ฉันไม่ได้ตั้ง ID ในการทำการอัปเดตฉันจำเป็นต้องใช้: $p=new Product($the_id); $p->load();สิ่งload()นี้คือการผสานแถวเมื่อเทียบกับการเขียนทับแถวทั้งหมด
คริสเตียน

2

ไม่ใช่ทุกแอพพลิเคชั่นที่จำเป็นต้องมีเฟรมเวิร์ก

ข้อดีคือ:

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

ข้อเสียคือ:

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

สรุปใช้ดีกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.