ฉันควรเรียน Symfony 2 หรือไม่


14

ฉันเห็นสิ่งนี้ Drupal 8 จะพึ่งพาหรือเข้ากันได้กับ Symfony มากน้อยเพียงใด แต่ฉันไม่เข้าใจว่ามันใช้ได้กับคำถามของฉันหรือไม่ ฉันควรเรียนรู้ Symfony 2 เพื่อพัฒนาด้วย Drupal หรือไม่


1
อ่านสิ่งนี้ทันทีหากคุณยังไม่ได้ทำ :)
ไคลฟ์

@ ไคลฟ์ฉันกำลังค้นหา Symfony 2 และ DI พบแล้วก็สะดุดกับเรื่อง Symfony 2 Drupal 8
johnny

คำตอบ:


24

Symfony 2 เหมือนใน stack เต็ม Symfony 2 ไม่มีผลต่อ Drupal 8 - เราไม่ใช้บันเดิลเราไม่ใช้การจัดเส้นทางเดียวกับที่ Symfony ทำ สุนัขน้อยลงช้าโดยการทำให้เมนูไอของฉันแย่ลงไปอีก ยังไม่มีเอกสารไม่สามารถเข้าใจได้ไม่ได้ให้ผลกับเครื่องมือวิเคราะห์โค้ดแบบสแตติกและทั้งหมดจะใช้งานไม่ได้และช้า) เราไม่ใช้ ORM เดียวกัน (หลักคำสอน) เรากำลังใช้ส่วนประกอบ Symfony 2 บางส่วน แต่มีน้อยมากที่ผู้พัฒนา "สิ้นสุด" มองเห็นได้ ตัวอย่างเช่นสับสนพอบางครั้งคุณต้องใช้เหตุการณ์ (สิ่งที่เป็น hook_boot / hook_init ใน D7 จะถูกแทนที่ด้วยเหตุการณ์เคอร์เนล Symfony HTTP) ในขณะที่ Drupal ส่วนใหญ่มักจะใช้ตะขอของมัน สับสนเป็นชื่อของเกมที่ Symfony 2 โต้ตอบกับ Drupal มันเป็นแบบที่ไม่ดีอย่างยิ่งและจำนวนของเอกสาร (ไม่) ของวิธีการที่แบบนี้ (ไม่) เกิดขึ้นทำให้มันยากขึ้น

แก้ไข: เราใช้ service container http://symfony.com/doc/current/book/service_container.htmlอย่างน้อยส่วนคงที่ของมัน - อย่างไรก็ตามการเพิ่มและเปลี่ยนแปลงบริการแบบไดนามิกทำได้โดยใช้วิธีเฉพาะของ Drupal (ผู้ให้บริการที่ เชื่อมต่อกับระบบผ่านทางเวทย์มนตร์พิเศษซึ่งไม่ใช่เหตุการณ์หรือขอเกี่ยวขอต้อนรับสู่ Drupal 8. )

ดังนั้น: หากคุณรู้จัก Symfony 2 ทั้งภายในและภายนอกดังนั้นสิ่งเล็กน้อยนั้นจะสามารถใช้ได้ใน Drupal 8 หากคุณไม่สนใจหนังสือหรือแบบฝึกหัดของ Symfony 2


3
ขอบคุณสำหรับผลงานมากมายของคุณ chx และกล้าพูดถึงมุมมองที่ซื่อสัตย์ในการใช้งาน Symfony 2 D8; และ API ใหม่ที่มีให้ใน D8
tenken

อย่าทำสิ่งนี้ผิด แต่ใครคือ "เรา" คุณอยู่ในทีมหลักของ Drupal หรือไม่?
johnny

2
lol @johnny chx ได้รับพื้นฐาน คุณควรทำอะไรบางอย่างเช่นค้นหา drupal.org ก่อนคำถาม kinda: drupal.org/user/9446
Mixologic

@Mixologic มันไม่ใช่เรื่องส่วนตัว ฉันบอกว่าอย่าทำผิด ฉันอยากรู้ว่า chx เป็นส่วนหนึ่งของทีมหลักหรือไม่ Chx พูดด้วยอำนาจ ฉันต้องการที่จะเป็นเช่นนี้และไม่ต้องเสียเวลาของฉันกังวลเกี่ยวกับ Symfony 2
johnny

@ จอห์นนี่: ขอโทษฉันไม่ได้ตั้งใจที่จะเจอกับการต่อว่าต่อขาน น่าประหลาดใจมากขึ้นที่ใครบางคนไม่รู้ว่าใครเป็น chx ฉันก็ไม่รู้เหมือนกันว่า chx คือใครมาเป็นเวลานาน ฉันพยายามแสดงให้คุณเห็นว่าวิธีที่ยอดเยี่ยมในการกำหนดความน่าเชื่อถือ / อำนาจในบางส่วนของชุมชน Drupal คือการตรวจสอบหน้าผู้ใช้ของพวกเขาใน drupal.org
Mixologic

6

ฉัน "โตขึ้น" กับ Drupal ดังนั้นฉันจึงเป็นคนชอบทำตามขั้นตอนอยู่เสมอ (Drupal เป็นเครื่องมือหลัก / เครื่องมือเดียวในการทำเว็บไซต์ที่เป็นงานของฉัน) ตอนแรกฉันสับสนมากเมื่อฉันเริ่มใช้ Drupal 8 OOP นั้นไม่ยากเลยตั้งแต่ฉันรู้จัก OOP แต่สถาปัตยกรรมใหม่นั้นยากที่จะเข้าใจ แต่หลังจากสองสัปดาห์ฉันเริ่มรู้สึกเหมือนอยู่บ้านอีกครั้ง เว็บไซต์นี้และ # drupal- บริจาคช่วยฉันมาก ฉันอ่านข้อมูลบางอย่างจากเอกสาร Symfony เพื่อทำความเข้าใจกับคอนโทรลเลอร์โดยทั่วไปแล้วฉันไม่ได้ทำงานกับ D8 เป็นเวลา 4 เดือนและฉันรู้สึกเหมือนอยู่บ้านอีกครั้ง

สิ่งต่าง ๆ มีการเปลี่ยนแปลง แต่คุณจะได้เรียนรู้วิธีการใหม่อย่างรวดเร็ว คุณไม่ต้องเรียนรู้ Symfony เลย ฉันไม่ได้

สิ่งหนึ่งที่ทำให้สิ่งต่าง ๆ ง่ายขึ้นสำหรับฉันคือการเปลี่ยน IDE ของฉันจาก NetBeans เป็น PHPStorm เนื่องจาก NetBeans ไม่สนับสนุนวิธีการสืบค้นที่สืบทอดมา หลังจากนั้นไม่กี่เดือนฉันไม่เข้าใจว่าฉันจะใช้ NB ได้อย่างไร :) (แม้ว่าการทำงานกับ Git ใน NB จะดีขึ้นมากสำหรับฉัน)

ดังนั้นเพื่อตอบคำถามของคุณ: คุณไม่จำเป็นต้องเรียนรู้ Symfony แน่นอน เพื่อทำให้ชีวิตของคุณง่ายขึ้นให้ดูที่ไฟล์ * .services.yml ในโมดูล (ที่ดำเนินการ) และกำหนดเส้นทางการเรียกกลับในโมดูลใด ๆ * .routing.yml ไฟล์เพื่อทำความเข้าใจการเรียกกลับหน้าเว็บ (จาก hook_menu ใน D7)


คุณคิดว่าการเรียนรู้ที่จะพัฒนาใน 7 จะเป็นประโยชน์ใน 8 หรือไม่?
johnny

คุณจะต้องเรียนรู้แนวคิดของ Drupal อยู่แล้วดังนั้นมันจึงไม่สำคัญ พวกเขายังใช้ใน D8 แม้ว่าคุณจะเริ่มต้นตอนนี้ฉันไม่เห็นจุดใด ๆ ในการกลับไปที่ D7

สวัสดีฉันทำงานกับ drupal 7 ประมาณ 4 ปีแล้วและเมื่อเร็ว ๆ นี้ฉันต้องการเรียนรู้ drupal8 ฉันไม่รู้ว่าจะเริ่มต้นที่ไหนคุณหมายถึงอะไรโดย # drupal- มีส่วนร่วม @IvanJaros?
Shirin Abdolahi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.