คำถามติดแท็ก php

คำถามเกี่ยวกับ PHP ซึ่งเป็นภาษาสคริปต์อเนกประสงค์ที่ใช้กันอย่างแพร่หลายซึ่งเหมาะอย่างยิ่งสำหรับการพัฒนาเว็บ

5
PHP, HTML, Javascript และการเขียนแนวปฏิบัติที่ดี
ฉันรู้ว่าฉันต้องเขียนข้อกำหนดการประชุมเกี่ยวกับการเข้ารหัส HTML, JavaScript และ PHP สำหรับฉันและทีมของฉัน ในการพัฒนาเว็บไซต์เช่นเดียวกับใน C ++ ฉันเป็นแฟนของการเยื้องและความคิดเห็น อย่างไรก็ตามในการทำงานของฉันฉันพบรหัส HTML + JavaScript + PHP ซึ่งทำให้ปวดหัว ฉันกำลังพยายามทำให้โค้ดอ่าน แต่สิ่งที่ดูเหมือนจะดีกว่าสำหรับฉัน (เพื่อเยื้อง & ความคิดเห็น) ดูเหมือนจะไม่ทำให้เพื่อนร่วมทีมหลงเสน่ห์ดังนั้นฉันจึงสงสัยว่ามีวิธีปฏิบัติที่ดีที่ดีที่สุด "เอกสารเหมือนกับหน้าเว็บของทุกวันนี้ซึ่งวันต่อวันมีความซับซ้อนมากขึ้นเรื่อย ๆ ฉันตระหนักถึงความจริงที่ว่าเป็นไปได้ว่ารหัสของหน้าเว็บทุกวันนี้มีความซับซ้อนเล็กน้อย แต่ฉันสงสัยว่าการประชุมที่ดีเกี่ยวกับแง่มุมเหล่านี้มีอยู่แล้วหรือไม่

9
วิธีที่ชัดเจนในการข้ามองค์ประกอบแรกในดัชนีที่ใช้สำหรับลูป
ฉันมีการวนรอบที่ฉันต้องข้ามองค์ประกอบแรกในอาร์เรย์ zero-based ข้อใดแสดงถึงความตั้งใจของฉันอย่างชัดเจนมากขึ้น for($i=1 ; $i < count(array) ; $i++){ array[$i]; } หรือ for($i=0+1 ; $i < count(array) ; $i++){ array[$i]; }
9 php  loops 

1
การประเมินชุดข้อมูลด้วยสูตรสตริงใน php
ฉันได้รับมอบหมายให้อัปเดตเงื่อนไขบางอย่างในแอปพลิเคชัน ฉันมีชุดข้อมูลที่จะทำการประเมินและมันได้รับการกำหนดค่าตายตัวในแอปพลิเคชันด้วยวิธีต่อไปนี้: $arr = array( 'a' => 'apple', 'b' => 'orange', 'c' => 1, 'd' => 2, 'e' => 5, 'f' => 'green', 'g' => 'red', 'h' => 'yellow', ) $res1 = ($arr['a'] == 'apple') ? TRUE : FALSE; $res2 = (($arr['b'] == $arr['f']) && ($arr['c'] < $arr['d']) ? TRUE …
9 php 

3
การพัฒนาขับเคลื่อนทดสอบข้ามภาษา
คำถามสั้น ๆ : คุณติดตามการพัฒนาที่ขับเคลื่อนด้วยการทดสอบในโครงการที่ครอบคลุมหลายภาษาได้อย่างไร โดยเฉพาะฉันเขียนเว็บแอปพลิเคชันที่ใช้ JavaScript และ PHP และฉันต้องการที่จะปฏิบัติตามหลักการ TDD แต่ฉันไม่แน่ใจว่าจะรวมพวกเขาได้อย่างไร ฉันจะรันชุดทดสอบแยกต่างหากสำหรับส่วน JS และ PHP และใช้ mocks ในชุด JS เพื่อจำลองการตอบสนองของเซิร์ฟเวอร์หรือไม่ มีเทคนิคสำหรับการทดสอบหน่วยทั้งสองส่วนประกอบในการทดสอบครั้งเดียวหรือไม่? นี่เป็นประสบการณ์ครั้งแรกของฉันในการใช้การพัฒนาที่ขับเคลื่อนด้วยการทดสอบดังนั้นคำแนะนำใด ๆ ที่คุณสามารถแบ่งปันเกี่ยวกับวิธีทำให้มันน้อยลง เหตุผลที่ฉันเลือกคือเมื่อฉันสร้างต้นแบบเสร็จข้อกำหนดก็เปลี่ยนไปทำให้ฉันต้องเปลี่ยนการออกแบบ ฉันคิดว่าถ้าฉันเริ่มต้นฉันต้องการที่จะเขียนรหัสที่สามารถขยายได้มากขึ้นด้วยการทดสอบการถดถอยในตัวตั้งแต่เริ่มต้น ฉันกำลังเขียนการทดสอบ PHP ของฉันใน SimpleTest และการทดสอบ JavaScript ของฉันใน JsTestDriver ฉันคุ้นเคยกับกระบวนทัศน์เชิงวัตถุดังนั้นฉันจึงมีบางคลาสใน PHP และฉันทำสิ่งที่คล้ายกันใน JavaScript โดยใช้การสืบทอดต้นแบบ ฉันก็เริ่มอ่านหนังสือเล่มนี้เกี่ยวกับ TDD ใน Pythonและหนังสือเล่มนี้เกี่ยวกับ TDD ใน JavaScriptแต่จากสิ่งที่ฉันได้เห็นสิ่งเหล่านี้ไม่ได้อธิบายการทดสอบแอปพลิเคชันแบบเต็ม (นอกการใช้บางอย่างเช่น Selenium หรือไดรเวอร์เว็บอื่น เพื่อทำการทดสอบการยอมรับแบบ …

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

2
เครื่องฮิปฮอปเสมือนจริง (HHVM) จะปรับปรุงประสิทธิภาพรันไทม์ของ PHP ในทางทฤษฎีได้อย่างไร
ในระดับสูง Facebook และอื่น ๆ ใช้เพื่อปรับปรุงประสิทธิภาพ PHP ด้วย Hip Hop Virtual Machine หรือไม่? มันแตกต่างจากการรันโค้ดโดยใช้เอ็นจิ้น zend อย่างไร เป็นเพราะประเภทมีการกำหนดทางเลือกกับแฮ็คที่อนุญาตให้ใช้เทคนิคการเพิ่มประสิทธิภาพล่วงหน้า? curiousity ของฉันเกิดขึ้นหลังจากที่ได้อ่านบทความนี้ยอมรับ HHVM

1
รูปแบบการสร้างเมนู
ฉันมีปัญหาในการจัดการกับเมนูที่ไม่ได้ใช้ในการกำหนดเส้นทาง ฉันมาจาก Drupal ที่ระบบเมนูจัดการการกำหนดเส้นทางเช่นกัน ดังนั้นการตั้งค่าสถานะที่ใช้งานและสถานะเส้นทางที่ใช้งานจะถูกจัดการโดยเส้นทาง (ที่ทำหน้าที่เป็นระบบการแสดงผลเมนูเช่นกัน) ตอนนี้กรอบ PHP จำนวนมากมีคลาสเราเตอร์ที่จัดการการกำหนดเส้นทาง ดูเหมือนจะเป็นการแยกที่ดีเนื่องจากเมนูไม่ควรระวัง POST || ตัวเลือก || ... คำขอ แต่เมื่อเขียนส่วนหน้าฉันพบว่าตัวเองเขียนโค้ดเมนูยาก หรือเก็บทุกอย่างใน DB และส่งค่าเหล่านั้นไปยังมุมมอง สิ่งที่ฉันไม่ชอบคือวิธีนี้คือคุณกำลังสร้างสำเนาของสิ่งที่คุณเขียนไว้ในเราเตอร์ แต่ตอนนี้ใช้คลาสเมนู ตัวอย่าง: Route::get('/somewhere','routename.somewhere','showStuffController'); Route::post('/somewhere','routename.somewhere','saveStuffController'); Menu::add('label.somewhere','routename.somewhere'); คุณกำลังแยกข้อกังวลที่นี่เพื่อที่ดี แต่เมนูขึ้นอยู่อย่างมากในเส้นทางเพื่อตั้งค่าสถานะการใช้งาน เมนูจะต้องรู้เกี่ยวกับลำดับชั้นเพื่อกำหนดเส้นทางการใช้งาน ใช่แล้วการตั้งค่าเทรลแอคทีฟและคลาสสถานะแอคทีฟเป็นเรื่องของมุมมอง แต่มี if ( Route::currentName() === $menuitem->getRouteName() ) { print 'active'; } ทุกมุมมองของคุณดูโง่ ถ้าอย่างนั้นก็ให้เพิ่มแอคทีฟเทรลที่น่ารำคาญหากมันเป็นของจริง การจัดการสิ่งนั้นก่อนที่ภาพจะเรนเดอร์และตั้งค่าสถานะแอคทีฟเทรลให้เป็นจริงเพียง แต่ดูน่าเกลียดในแบบที่ฉันรู้ คำถามของฉันคือ: มีรูปแบบหรือวิธีที่ชาญฉลาดในการทำความสะอาดนี้ดีกว่า ... ? หนึ่งควรจัดการ …

3
ส่วนประกอบสองอย่างที่เสนอฟังก์ชันการทำงานเดียวกันซึ่งเป็นไปตามความต้องการที่แตกต่างกัน
ฉันกำลังสร้างแอปพลิเคชันใน PHP โดยใช้ Zend Framework 1 และ Doctrine2 เป็นเลเยอร์ ORM ทุกอย่างเป็นไปด้วยดี ตอนนี้ฉันสังเกตเห็นว่าทั้ง ZF1 และ Doctrine2 มาพร้อมกับและใช้งานแคชของพวกเขาเอง ฉันได้ประเมินทั้งสองอย่างและในขณะที่แต่ละคนมีข้อดีและข้อเสียของตัวเองทั้งคู่ต่างก็โดดเด่นกว่าคนอื่นสำหรับความต้องการที่เรียบง่ายของฉัน ดูเหมือนว่าไลบรารีทั้งสองนั้นจะถูกเขียนลงบนอินเตอร์เฟสที่เกี่ยวข้องไม่ใช่การประยุกต์ใช้ เหตุผลที่ฉันรู้สึกว่านี่เป็นปัญหาคือในระหว่างการบูตแอปพลิเคชันของฉันฉันต้องกำหนดค่าแคชไดรเวอร์สองตัว - แต่ละอันมีไวยากรณ์ของตัวเอง ไม่ตรงกันถูกสร้างขึ้นอย่างง่ายดายด้วยวิธีนี้และรู้สึกไม่มีประสิทธิภาพในการตั้งค่าสองการเชื่อมต่อกับแบ็กเอนด์แคชเพราะสิ่งนี้ ฉันกำลังพยายามกำหนดว่าอะไรคือวิธีที่ดีที่สุดในการส่งต่อและยินดีรับข้อมูลเชิงลึกที่คุณสามารถเสนอได้ สิ่งที่ฉันคิดตอนนี้มีสี่ตัวเลือก: ไม่ทำอะไรเลยยอมรับว่ามีสองคลาสที่เสนอฟังก์ชันการแคช สร้างคลาส Facade เพื่อติดอินเทอร์เฟซของ Zend เข้ากับการใช้แคชของ Doctrine ตัวเลือก 2 วิธีอื่น ๆ - สร้าง Facade เพื่อแมปอินเทอร์เฟซของ Doctrine บนแบ็กเอนด์ Zend Framework ใช้หลายอินเทอร์เฟซการสืบทอดเพื่อสร้างอินเทอร์เฟซเดียวเพื่อปกครองทั้งหมดและอธิษฐานว่าไม่มีการซ้อนทับกัน (เช่น: หากทั้งคู่มีวิธี "บันทึก" พวกเขาจะต้องยอมรับพารามิเตอร์ในลำดับเดียวกันเนื่องจาก PHP ขาดความหลากหลายที่เหมาะสม) …

4
PHP file_put_contents การล็อคไฟล์
Senario: คุณมีไฟล์ที่มีสตริง (ค่าเฉลี่ยประโยค) ในแต่ละบรรทัด เพื่อประโยชน์ในการโต้แย้งสมมติว่าไฟล์นี้มีขนาด 1Mb (หลายพันบรรทัด) คุณมีสคริปต์ที่อ่านไฟล์เปลี่ยนแปลงสตริงบางส่วนภายในเอกสาร (ไม่เพียง แต่ต่อท้าย แต่ยังลบและแก้ไขบางบรรทัด) แล้วเขียนทับข้อมูลทั้งหมดด้วยข้อมูลใหม่ คำถาม: 'เซิร์ฟเวอร์' PHP, OS หรือ httpd ฯลฯ มีระบบในสถานที่ที่จะหยุดปัญหาเช่นนี้ (อ่าน / เขียนครึ่งทางผ่านการเขียน) หรือไม่? ถ้าเป็นเช่นนั้นโปรดอธิบายวิธีการทำงานและให้ตัวอย่างหรือลิงก์ไปยังเอกสารที่เกี่ยวข้อง ถ้าไม่มีสิ่งที่ฉันสามารถเปิดใช้งานหรือตั้งค่าเช่นการล็อคไฟล์จนกว่าการเขียนจะเสร็จสมบูรณ์และทำให้การอ่านและ / หรือการเขียนอื่น ๆ ทั้งหมดล้มเหลวจนกว่าสคริปต์ก่อนหน้าจะเขียนเสร็จแล้วหรือไม่ ข้อสมมติฐานและข้อมูลอื่น ๆ ของฉัน: เซิร์ฟเวอร์ที่สงสัยกำลังเรียกใช้ PHP และ Apache หรือ Lighttpd หากสคริปต์ถูกเรียกใช้โดยผู้ใช้รายหนึ่งและอยู่กึ่งกลางผ่านการเขียนไปยังไฟล์และผู้ใช้รายอื่นอ่านไฟล์ในช่วงเวลาที่แน่นอน ผู้ใช้ที่อ่านมันจะไม่ได้รับเอกสารเต็มเนื่องจากยังไม่ได้เขียน (หากสมมติฐานนี้ผิดโปรดแก้ไขฉัน) ฉันกังวลเฉพาะการเขียน PHP และการอ่านไฟล์ข้อความและโดยเฉพาะอย่างยิ่งฟังก์ชั่น "fopen" / "fwrite" และส่วนใหญ่ "file_put_contents" …

6
วิธีที่ดีที่สุดในการแยกวิเคราะห์ไฟล์
ฉันพยายามที่จะหาทางออกที่ดีสำหรับการทำ parser ให้บางส่วนของรูปแบบไฟล์ที่มีชื่อเสียงออกมีเช่น: EDIFACTและTRADACOMS หากคุณไม่คุ้นเคยกับมาตรฐานเหล่านี้ลองดูตัวอย่างนี้จาก Wikipedia: ดูตัวอย่างข้อความ EDIFACT ด้านล่างที่ใช้เพื่อตอบคำขอความพร้อมใช้งานของผลิตภัณฑ์: - UNA:+.? ' UNB+IATB:1+6XPPC+LHPPC+940101:0950+1' UNH+1+PAORES:93:1:IA' MSG+1:45' IFT+3+XYZCOMPANY AVAILABILITY' ERC+A7V:1:AMD' IFT+3+NO MORE FLIGHTS' ODI' TVL+240493:1000::1220+FRA+JFK+DL+400+C' PDI++C:3+Y::3+F::1' APD+714C:0:::6++++++6X' TVL+240493:1740::2030+JFK+MIA+DL+081+C' PDI++C:4' APD+EM2:0:130::6+++++++DA' UNT+13+1' UNZ+1+1' เซ็กเมนต์ UNA เป็นทางเลือก หากมีจะระบุอักขระพิเศษที่จะใช้ในการตีความส่วนที่เหลือของข้อความ มีหกตัวอักษรตาม UNA ในลำดับนี้: องค์ประกอบตัวแยกองค์ประกอบข้อมูล (: ในตัวอย่างนี้) ตัวแยกองค์ประกอบข้อมูล (+ ในตัวอย่างนี้) การแจ้งเตือนทศนิยม (. ในตัวอย่างนี้) ตัวละครที่วางจำหน่าย (ในตัวอย่างนี้) สงวนต้องเป็นพื้นที่ ตัวยุติเซ็กเมนต์ …

2
โครงการ PHP โอเพ่นซอร์สใดที่มีการออกแบบ OOP ที่สมบูรณ์แบบที่ฉันสามารถเรียนรู้ได้ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันเป็นมือใหม่สำหรับ OOP และฉันเรียนรู้จากตัวอย่างได้ดีที่สุด คุณสามารถพูดได้ว่าคำถามนี้คล้ายกับโครงการโอเพ่นซอร์สสกาล่าใดที่ฉันควรศึกษาเพื่อเรียนรู้วิธีการเขียนโค้ดที่ดีที่สุด - แต่ใน PHP ฉันได้ยินมาแล้วว่า Symfony มี 'สถาปัตยกรรม' ที่ดีที่สุด (ฉันจะไม่แกล้งฉันรู้ว่ามันหมายถึงอะไร) และ Doctrine ORM มันคุ้มไหมที่จะใช้เวลาหลายเดือนในการอ่านซอร์สโค้ดของโครงการเหล่านี้พยายามที่จะอนุมานรูปแบบที่ใช้และเรียนรู้เทคนิคใหม่ ๆ ? ฉันได้เห็นหน้าเว็บจำนวนเท่ากันที่มีการปฏิเสธและชื่นชอบ codebase ของ Zend (จะให้ลิงก์หากเห็นว่าจำเป็น) คุณรู้หรือไม่เกี่ยวกับโครงการอื่น ๆ ที่จะทำให้นักพัฒนา OOP ที่มีประสบการณ์หลั่งน้ำตาแห่งความสุข? โปรดให้ฉันเพิ่มว่าการใช้งานจริงและขอบเขตการใช้งานไม่ใช่เรื่องที่น่ากังวลเลย - ฉันแค่ต้องการทำ: เลือกโครงการที่มี codebase ซึ่งถือว่ายอดเยี่ยมโดยผู้พัฒนาและดีกว่าฉัน เขียนโค้ดที่บรรลุสิ่งที่โครงการทำ เปรียบเทียบผลลัพธ์และลองเรียนรู้สิ่งที่ฉันไม่รู้ โดยทั่วไปฐานความสนใจด้านวิชาการ มีคำแนะนำอะไรมั้ย

4
การใช้โอเปอร์เรเตอร์ของ PHP ด้วยอาร์กิวเมนต์เพียงสองตัว
ฉันเพิ่งตรวจสอบบางส่วนของรหัสของฉันและสังเกตเห็นว่าในแบบที่ขาดสติฉันจะออกจากโครงสร้างดังต่อไปนี้: $guid = empty($subscription->guid) ? : $subscription->guid; ตอนนี้สิ่งนี้ไม่ได้ทำในสิ่งที่ควรจะเป็นและผิดแต่เนื่องจากคุณสมบัตินั้นถูกตั้งค่าเสมอตอนนี้มันทำงานได้ดีและไม่มีข้อผิดพลาดทางไวยากรณ์ตั้งแต่ 5.3 เนื่องจากการเปลี่ยนแปลงต่อไปนี้ : ตั้งแต่ PHP 5.3 เป็นไปได้ที่จะปล่อยให้ผู้ให้บริการรายกลางอยู่ Expression expr1?: expr3 ส่งคืน expr1 ถ้า expr1 หาค่าเป็น TRUE และ expr3 เป็นอย่างอื่น ฉันไม่ได้ตระหนักถึงการเปลี่ยนแปลงนี้และตอนนี้ฉันอยากรู้ว่าฉันควรจะใช้มันหรือไม่ นี่คือสิ่งที่ฉันขาดไปอย่างมากจากภาษาเช่นทับทิมที่คุณสามารถทำได้เช่นa = b || cเพื่อให้ได้บูลีน 'ของจริง' bหรือcมากกว่า อย่างไรก็ตามไวยากรณ์ที่พวกเขาเลือกสำหรับผู้ประกอบการที่ดูเหมือนจะเป็นเรื่องง่ายสำหรับฉัน ฉันควรจะใช้สิ่งนี้ในรหัสการผลิตหรือไม่? แน่นอนว่ามันทำให้ฉันประหลาดใจเมื่อฉันเห็นมันโดยบังเอิญ

9
มันสมเหตุสมผลหรือไม่ที่จะหลีกเลี่ยงเฟรมเวิร์กเมื่อสร้าง webapp ขนาดใหญ่ด้วย PHP?
ในฐานะนักพัฒนาแอปพลิเคชันเว็บ PHP เป็นเวลาหลายปีฉันมีส่วนแบ่ง MVC และกรอบงานของฉัน ตอนแรกฉันคิดว่าพวกเขาเป็นสิ่งที่ดีที่สุดตั้งแต่หั่นขนมปัง; ทุกอย่างดูเหมือนจะง่ายมากที่จะใช้ อย่างไรก็ตามในตอนนี้ดูเหมือนว่าแอพพลิเคชั่นจะมีความซับซ้อนมากขึ้นเท่าไหร่ความยุ่งยากในการแนะนำก็มากขึ้นดังนั้นฉันต้องพัฒนาวิธีแก้ปัญหาเพื่อเอาชนะมัน การแก้ปัญหาดังกล่าวมักจะค่อนข้างยุ่งยากและซับซ้อนเนื่องจากฉันต้องเจาะลึกลงไปในรหัสแกนหลักของเฟรมเวิร์กและทำการเปลี่ยนแปลงเพื่อให้มันทำงานตามที่ฉันต้องการ ตัวอย่างเช่นในหนึ่งในโครงการของฉันที่ฉันใช้ Slim (C) + Idiorm (M) + Twig (V) (ซึ่งฉันเชื่อว่ามีความยืดหยุ่นมาก) ฉันต้องสร้างฟังก์ชันที่กำหนดเองเพื่อแสดงข้อมูลแบบไดนามิกในเทมเพลตหลัก ไม่มีกรอบฉันสามารถรัน mysql_query () ในไฟล์ที่รวมไว้ได้ โอเคกรอบงานเจ๋ง ๆ ถ้าฉันสร้างเว็บไซต์โปรไฟล์ บริษัท ที่เรียบง่าย ฉันสามารถชักรหัสในคืนเดียวและพวกเขามักจะพร้อมในตอนเช้าและจำนวนของการฝึกการเขียนโปรแกรมที่ดีและรูปแบบการออกแบบที่ฉันได้เรียนรู้จากพวกเขานั้นมีค่ามาก แต่จริงๆแล้วสำหรับเว็บแอปพลิเคชันที่ซับซ้อนเช่นระบบจัดการโรงเรียนแบบ all-in-one เว็บกรอบมักจะได้รับในทางของกระบวนการทางธุรกิจของฉันเช่นในตัวอย่างข้างต้น ดังนั้นคำถามของฉันคือ: ใช่ไหมที่จะกลับไปสู่พื้นฐานและใช้รหัส PHP มาตรฐานและ libaries ในการทำโปรเจ็กต์ต่อไปของฉันซึ่งอาจมีกรอบและไลบรารีที่มีค่าใช้จ่ายสูงถึงพันล้านหากฉันสามารถใช้วิธีการเขียนโค้ดที่ดี ชอบ MVC ไหม ทีมพัฒนาของฉันค่อนข้างเล็ก: มีเพียงโปรแกรมเมอร์ 2 คนและนักออกแบบ 1 คน โปรแกรมเมอร์คนอื่นเห็นด้วยกับความคิดของฉันด้านบน

2
การแปลข้อความที่ยาวขึ้น (มุมมองและเทมเพลตอีเมล) ด้วย gettext
ฉันกำลังพัฒนาเว็บแอปพลิเคชั่น PHP หลายภาษาและฉันมีข้อความยาว (-ish) ที่ฉันต้องการแปลด้วย gettext เหล่านี้คือเทมเพลตอีเมล (โดยปกติจะสั้น แต่ก็ยังมีอีกหลายบรรทัด) และบางส่วนของเทมเพลตการดู (บล็อคข้อความที่มีความหมายที่ยาวกว่า) ข้อความเหล่านี้จะมี HTML ง่ายๆ (เช่นตัวหนา / ตัวเอียงเพื่อเน้นอาจเป็นลิงค์ที่นี่หรือที่นั่น) แม่แบบเป็นสคริปต์ PHP ที่มีการบันทึกผลลัพธ์ ปัญหาคือ gettext ดูงุ่มง่ามมากสำหรับการจัดการข้อความที่ยาวขึ้น โดยทั่วไปแล้วข้อความที่ยาวจะมีการเปลี่ยนแปลงมากกว่าระยะเวลาสั้นกว่าข้อความสั้น - ฉันสามารถเปลี่ยน msgid และตรวจสอบให้แน่ใจว่าได้อัปเดตในการแปลทั้งหมด (อาจเป็นงานจำนวนมากและมีข้อผิดพลาดเกิดขึ้นได้ง่ายเมื่อ msgid ยาว) หรือ msgid ไม่เปลี่ยนแปลงและแก้ไขเฉพาะการแปล (ซึ่งจะทำให้ข้อความล้าสมัยในแม่แบบที่ทำให้เข้าใจผิด) นอกจากนี้ฉันเคยเห็นคำแนะนำเกี่ยวกับการรวม HTML ในสตริง gettext แต่การหลีกเลี่ยงมันจะทำให้ข้อความธรรมดาชิ้นเดียวกลายเป็นชิ้นส่วนจำนวนมากซึ่งจะเป็นฝันร้ายที่ยิ่งใหญ่กว่าในการแปลและรวมกันอีกครั้งและฉันก็เห็นคำแนะนำ การแยก gettext สตริงที่ไม่จำเป็นออกเป็น msgids แยกกัน วิธีอื่นที่ฉันเห็นคือละเว้น gettext ทั้งหมดสำหรับข้อความที่ยาวกว่านี้และแยกบล็อกเหล่านั้นในซับเทมเพลตภายนอกสำหรับแต่ละโลแคลและเพียงแค่รวมบล็อกสำหรับโลแคลปัจจุบัน ข้อเสียคือฉันกำลังแยกความพยายามในการแปลระหว่างไฟล์. po …

9
เป็นวิธีที่ดีที่สุดในการแทรกชุดข้อมูลขนาดใหญ่ลงในฐานข้อมูล MySQL (หรือฐานข้อมูลทั่วไป)
เป็นส่วนหนึ่งของโครงการ PHP ฉันต้องแทรกแถวลงในฐานข้อมูล MySQL เห็นได้ชัดว่าฉันคุ้นเคยกับการทำสิ่งนี้ แต่สิ่งนี้จำเป็นต้องแทรกเข้าไปใน 90 คอลัมน์ในการสืบค้นเดียว ข้อความค้นหาผลลัพธ์น่ากลัวและเสาหิน (โดยเฉพาะการแทรกตัวแปร PHP ของฉันเป็นค่า): INSERT INTO mytable (column1, colum2, ..., column90) VALUES ('value1', 'value2', ..., 'value90') และฉันกังวลว่าฉันจะไม่ทำอย่างนี้ มันใช้เวลานาน (น่าเบื่อ) ในการพิมพ์ทุกอย่างและการทดสอบการเขียนรหัสทดสอบจะน่าเบื่อเท่า ๆ กัน มืออาชีพทำงานเกี่ยวกับการเขียนและทดสอบคิวรีเหล่านี้อย่างรวดเร็วได้อย่างไร มีวิธีที่ฉันสามารถเพิ่มความเร็วของกระบวนการหรือไม่
9 php  mysql  efficiency 

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