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

คำถามที่เกี่ยวข้องกับการพัฒนาแบบกำหนดเอง (PHP) ใน Magento (ตรงข้ามกับการติดตั้งและกำหนดค่าเท่านั้น)

5
จะเขียนนามสกุลที่กำหนดเองได้อย่างไร?
เนื่องจากเมื่อเร็ว ๆ นี้ฉันมีปัญหามากมายเกี่ยวกับส่วนขยายที่ฟรีและเชิงพาณิชย์ฉันตัดสินใจที่จะถามคำถามนี้และตอบคำถามด้วยขั้นตอนที่ฉันมักจะปฏิบัติตามเมื่อเขียนส่วนขยาย อย่าลังเลที่จะแก้ไขคำตอบหรือเพิ่มคำตอบใหม่ ในกรณีส่วนใหญ่เมื่อติดตั้งส่วนขยายหรือชุดรูปแบบฉันต้องใช้เวลาสองสามชั่วโมง (บางครั้งมากกว่าหรือบางครั้งก็น้อยกว่า) เพื่อให้สามารถใช้งานได้ในทุกสภาพแวดล้อมที่ฉันต้องการ: dev: โดยปกติlocalhostโครงการจะอยู่ในโฟลเดอร์ย่อย preprod & สด สิ่งนี้เกิดขึ้นแม้จะมีส่วนขยายจากผู้ให้บริการส่วนขยายขนาดใหญ่ (ที่ควรจะเป็นแบบนิรนามอย่างน้อยก็จนกว่าฉันจะบ้าจริง ๆ และเพิ่มชื่อของพวกเขาในที่นี่) ดังนั้นคำถามหลักคือ .. ขั้นตอนใดที่ฉันควรพิจารณาเมื่อเขียนส่วนขยาย ของรหัสและทำให้มันง่ายขึ้นสำหรับบุคคลด้านเทคนิคและไม่ใช่ด้านเทคนิคที่จะใช้มันและสำหรับคนทางเทคนิคที่จะเปลี่ยนมันได้หรือไม่

8
วิธีทดสอบหรือจัดรูปแบบหน้าคำสั่งซื้อที่ประสบความสำเร็จ
หากฉันโหลดcheckout/onepage/successหน้าซ้ำฉันจะถูกนำไปที่รถเข็น ดังนั้นเมื่อทำการดีบั๊กหรือใส่สไตล์หน้าคำสั่งซื้อฉันจะต้องทำคำสั่งซื้อใหม่เสมอ ฉันจะทำสิ่งนี้ได้อย่างมีประสิทธิภาพมากขึ้นได้อย่างไร

5
การเรียนรู้การพัฒนาปลั๊กอิน Magento
ฉันเป็นนักพัฒนา PHP มานานกว่า 13 ปีมีความรู้กว้างขวางเกี่ยวกับ PHP ตราบเท่าที่โครงการยอดนิยมอื่น ๆ เช่น WordPress ฉันไม่มีประสบการณ์กับ Magento ตอนนี้ฉันมีงานเต็มเวลาทำงานให้กับ บริษัท ที่ใช้ Magento งานพัฒนาของฉันทั้งหมดจะอยู่ที่ Magento ในตอนนี้ ความคิดเริ่มแรกของฉันหลังจากดู Magento เป็นครั้งแรกว้าวฉันได้อะไรลงไปบ้าง? แต่แล้วนักพัฒนาที่มีประสบการณ์ในตัวฉันก็ออกมาและจำได้ว่ามันเป็นแค่ PHP ดังนั้นฉันจึงมีคำถามพื้นฐานเกี่ยวกับคุณภาพเยี่ยมฉันขอขอบคุณคำตอบจากนักพัฒนา Magento ที่มีประสบการณ์มากกว่า ... สถานที่ที่มีประโยชน์ที่สุดในการเรียนรู้เกี่ยวกับการพัฒนาวีโอไอพีข้างเว็บไซต์นี้คืออะไร ส่วนขยาย / ปลั๊กอินทำให้ฉันสับสนมากจนถึงตอนนี้ แพลตฟอร์มอื่น ๆ เช่น WordPress ช่วยให้คุณวางปลั๊กอินลงในโฟลเดอร์ของตัวเองและไฟล์ทั้งหมดจะอยู่ภายใต้โฟลเดอร์นั้น จากสิ่งที่ฉันได้เห็นจนถึงตอนนี้ปลั๊กอินอาจกระจัดกระจายไปทั่วหลายโฟลเดอร์ใน Magento นี่ถูกต้องหรือไม่ ฉันได้เรียนรู้เกี่ยวกับวิธีการใช้งานฟังก์ชั่นการทำงานของ Core มากขึ้น ดังนั้นหากไฟล์ในแกนตั้งอยู่ที่นี่/app/code/core/Mage/SitemapModel/Resource/Catalogฉันสามารถขับได้โดยสร้างไฟล์ในตำแหน่งนี้/app/code/local/Mage/SitemapModel/Resource/Catalogดังนั้นมันจะทำงานอย่างไรกับส่วนขยาย / ปลั๊กอิน? หากฉันสร้างปลั๊กอินที่จำเป็นต้องมีฟังก์ชั่นการทำงานหลักมากกว่านี้ฉันต้องมีไฟล์ของฉันอยู่ตรงนั้นเพื่อให้ส่วนขยายนั้นใช้งานได้หรือไม่ ข้อมูลอื่นใดที่คุณต้องการให้คุณรู้ตั้งแต่ตัววีโอไอพี ขอบคุณสำหรับความเข้าใจใด ๆ …

6
ล้างธีม / CSS Cache ใน Magento 2
เมื่อฉันทำการเก็บ Magento 2 วิธีที่แนะนำในการทำความสะอาดแคชคืออะไร ฉันแก้ไข.lessไฟล์แล้วฉันจะทำ rm -rf pub/static/frontend/* var/view_preprocessed/ var/*cache/* แต่นี่ดูเหมือนจะเป็นวิธีการบังคับเดรัจฉาน php bin/magento cache:flush --all ดูเหมือนว่าจะไม่ทำงาน มีดีกว่าไหม

11
Magento2 ทำงานช้ามากในการพัฒนา localhost
ฉันเพิ่งเริ่มพัฒนาส่วนขยายหรือการปรับแต่งใหม่ล่าสุดของ magento2 และความประทับใจแรกของฉันคือฝันร้าย ฉันต้องรอประมาณ 20-30 วินาทีสำหรับการเปลี่ยนแปลงทุกครั้งหรือไม่ จริงๆ? ฉันกำลังพูดถึงโหมดการพัฒนาฉันรู้ว่าในการผลิตด้วยการเปิดใช้งานแคชและสิ่งอื่น ๆ เว็บไซต์สามารถราบรื่น แต่เมื่อฉันทำงานกับปัญหาส่วนขยายหรือเลย์เอาต์ฉันจำเป็นต้องลบไฟล์สแตติกล้างแคช ฯลฯ คำถามของฉันคือนักพัฒนา M2 ทั้งหมดทำงานอย่างไร? เพราะฉันไม่เชื่อว่าคุณต้องรอ 20s-30s เพื่อรีเฟรชหน้าเว็บ ... สภาพแวดล้อมของฉัน: พีซีของฉัน "ดี" i5 พร้อม RAM ขนาด 8GB ฉันต้องทำงานกับ Windows ดังนั้นฉันจึงใช้คนจรจัด: การใช้ซีพียูทั้ง 4 คอร์ ใช้ RAM ขนาด 5120MB Ubuntu / trusty64 - Ubuntu 14.04 PHP เวอร์ชัน 7.0.12-1 + deb.sury.org ~ trusty …

4
ต้องการคำสั่งการรวบรวมใดในโหมดนักพัฒนาซอฟต์แวร์และเมื่อใด
ใครสามารถให้คำแนะนำฉันเมื่อเรียกใช้คำสั่งการคอมไพล์ในโหมดนักพัฒนา Magento 2 ได้หรือไม่ ฉันไม่แน่ใจว่าฉันเข้าใจถูกต้องหรือยัง ใน devdocs โหมดนักพัฒนาซอฟต์แวร์จะอธิบายดังนี้: ไฟล์มุมมองคงที่จะไม่ถูกแคช; พวกเขาถูกเขียนไปยัง Magento pub / static directory ทุกครั้งที่มีการเรียก หมายความว่าแต่ละไฟล์ใน pub / static ถูกสร้างขึ้นเมื่อมีการร้องขอและคุณไม่จำเป็นต้องโทรsetup:static-content:deployหรือไม่ สิ่งนี้ขัดแย้งกับประสบการณ์ของฉัน หรือฉันสามารถลบไฟล์ใด ๆ และพวกเขาจะถูกสร้างใหม่? นอกจากนี้รูปภาพ, ไฟล์ CSS และ JS ก็ดูเหมือนจะได้รับการปฏิบัติแตกต่างกันไป หน้าเอกสารสำหรับโหมดผู้พัฒนาไม่ได้พูดอะไรเกี่ยวกับการรวบรวมรหัส แต่ฉันคิดว่ามีความแตกต่างเช่นกันดังนั้นจึงไม่จำเป็นต้องเรียกใช้setup:di:compileหลังจากการเปลี่ยนแปลงทั้งหมดในdi.xmlไฟล์ สิ่งนี้ถูกต้องหรือไม่ถ้าการสร้างรหัสทำงานอย่างไรในโหมดนักพัฒนาซอฟต์แวร์ ในคำอื่น ๆ :แคชกันฉันต้องรันคำสั่งใดหลังจากที่เปลี่ยนแปลง?

2
การตั้งค่าการพัฒนา Magento
คำถามนี้มุ่งสู่การตั้งค่าสภาพแวดล้อมการพัฒนา ฉันมีข้อกำหนดเฉพาะบางประการ: ฉันต้องการใช้โซลูชันของฉันภายใต้ Linux, Windows และ Mac OS เนื่องจากผู้คนในทีมของเราใช้ระบบปฏิบัติการเหล่านี้ทั้งหมด (เช่นนักพัฒนาส่วนหน้าใช้ Windows / Mac ผู้พัฒนาส่วนใหญ่ใช้ Linux) ฉันต้องใช้ modman ฉันต้องใช้นักแต่งเพลง ฉันต้องใช้ Github รวมถึงที่เก็บ Git ส่วนตัวของฉัน ฉันต้องการ IDE ที่เหมาะสมเช่น Netbeans หรือ PHP Storm ฉันต้องการประสิทธิภาพที่ดีมาก การตั้งค่าปัจจุบันของฉันคือภาพ Ubuntu เสมือนจริงภายใน Virtualbox ทั้งสาม OS สามารถเรียกใช้ Virtualbox ได้ดังนั้นคะแนน 1) - 5) จะพึงพอใจ อย่างไรก็ตามในปัจจุบันฉันไม่พอใจกับ 6) นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งเมื่อเรียกใช้โซลูชันจากภายใน Ubuntu 12.04 Virtualbox …

2
เพราะเหตุใดสถานะถูกปิดใช้งาน 2 แทน 0
คำถามสำหรับนักพัฒนาคุณภาพเยี่ยม: ทำไมผลิตภัณฑ์ที่เปิดใช้งานมีสถานะ 1 ในขณะที่ผลิตภัณฑ์ที่ปิดใช้งานมีสถานะ 2 โดยปกติแล้ว "เปิดใช้งาน" หรือ "ใช้งาน" หรืออะไรก็ตามที่ได้รับสถานะ 1 ในขณะที่การสนทนาคือ 0 มีเหตุผลว่าทำไมวีโอไอพีใช้ 2 ที่นี่แทน?

7
ใช้ส่วนขยาย debug / โหมดผู้พัฒนาเพียงพอในการป้องกัน
มีส่วนขยายที่ดีสำหรับนักพัฒนา Magento ที่โดยปกติแล้วคุณไม่ต้องการให้มีในระบบจริง คุณจะเก็บมันไว้ในที่เก็บโครงการได้อย่างไร

4
Magento Development Workflow: วิธีการ "ควบคุมแหล่งข้อมูล" และอัพเดตการติดตั้ง Magento แบบสดจากการติดตั้ง Test Magento?
ฉันกำลังโพสต์คำถามนี้เพราะฉันต้องการทราบว่าเวิร์กโฟลว์การพัฒนาที่ดีที่สุดสำหรับใครบางคนที่ต้องการจัดการทุกด้านของร้านค้าออนไลน์ เช่นเดียวกับการพัฒนาเว็บทั้งหมดแน่นอนว่าการมีสำเนาสดและสำเนาพัฒนาซอฟต์แวร์อย่างน้อยหนึ่งชุดเป็นสิ่งที่สำคัญมาก อย่างไรก็ตามการจัดการข้อมูลวีโอไอพีนั้นไม่เหมือนกับการจัดการซอฟต์แวร์ "ไฟล์ที่ใช้ไฟล์อื่น ๆ " เพราะยังมีส่วนประกอบฐานข้อมูลที่เข้ามาเล่นดังนั้นนอกเหนือจากความจริงที่ว่าฉันสามารถใช้เครื่องมือเช่น Git เป็นเครื่องมือ VCS สำหรับการควบคุมแหล่งที่มาได้อย่างไร ฉันไปเกี่ยวกับการจัดการความแตกต่างในฐานข้อมูลระหว่างเวอร์ชันสดและการพัฒนาหรือไม่ แน่นอนว่าฉันสามารถทำการสำรองข้อมูลของฐานข้อมูลสดผ่าน cron และแทรกคำสั่ง SQL INSERT จากการสำรองข้อมูลลงในการควบคุมแหล่งที่มา แต่หลังจากนั้นฐานข้อมูลทั้งสองจะพัฒนาแยกกันในขณะที่ลูกค้าลงทะเบียนและสั่งซื้อสินค้าด้วยมือเดียว เป็นการอัพเดตที่ทำกับฐานข้อมูลการพัฒนาแยกต่างหาก เมื่อมันมาถึงการรวมการพัฒนาและเวอร์ชันสดไฟล์ php สามารถอัปเดตได้โดยไม่มีปัญหาผ่าน git (โดยใช้ gitignore บนไฟล์เดียวซึ่งรายละเอียดการกำหนดค่าฐานข้อมูลโฮสต์) แต่ไฟล์ฐานข้อมูลล่ะ? ฉันจะรวมสองไฟล์ที่มีคำสั่ง INSERT SQL จากการสำรองข้อมูลสองรายการโดยไม่ก่อให้เกิดความเสียหายและทำลายระบบได้อย่างไร นี่คือพื้นที่ร่มรื่นของวงจรการพัฒนาวีโอไอพีที่ฉันกำลังเผชิญอยู่: การจัดการความแตกต่างของฐานข้อมูล สำหรับฉันดูเหมือนโซลูชันเดียวที่จะซิงโครไนซ์เนื้อหาของฐานข้อมูลซึ่งแตกต่างกันระหว่างการพัฒนา / ทดสอบและเวอร์ชั่นสดของ Magento store คือการเขียนลงบนกระดาษแผ่นหนึ่งการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นในเวอร์ชันการพัฒนาผ่าน Magento Admin Panel และหวังว่าจะไม่ทำผิดพลาดหลังจากนั้นเมื่อทุกอย่างถูกทดสอบและทำงานเพื่อไปยังเวอร์ชันสดและดำเนินการเปลี่ยนแปลงเหล่านั้นในขณะที่ Magento ถูกออฟไลน์และเข้าสู่โหมดการบำรุงรักษา เนื่องจากนี่เป็นกระบวนการที่ทำด้วยมือจึงมีแนวโน้มที่จะเกิดข้อผิดพลาด ดังนั้นวิธีที่ดีกว่าในการจัดการการซิงโครไนซ์ฐานข้อมูลระหว่างเซิร์ฟเวอร์วีโอไอพีทดสอบและเซิร์ฟเวอร์วีโอไอพีสดคืออะไร ขอบคุณ

4
จะหานักพัฒนา Magento ที่น่าเชื่อถือได้อย่างไร?
ฉันเป็นเจ้าของธุรกิจเริ่มต้นที่ขายบน eBay แต่ฉันได้ทำงานอย่างหนักกับ Magento หลังการตั้งค่าร้านค้าด้วยเทมเพลต ฉันเบื่อเทมเพลตหลายครั้งเพราะฉันรู้สึกว่ามันไม่มีฟังก์ชั่นเฉพาะหรือรูปลักษณ์ที่ฉันต้องการ ดังนั้นฉันจึงสร้าง PSD โดยมีธีมของฉันวางไว้และกำลังมองหาใครสักคนที่จะให้บริการ PSD กับ Magento ดูเหมือนว่าทุกที่ที่ฉันมองฉันจะได้รับการเสนอราคาหรือคำตอบที่แตกต่างกันมากและตอนนี้ฉันสับสนมากขึ้นกว่าเดิม บริษัท บางแห่งบอกฉันว่า Magento ไม่ใช่ทางเลือกที่แน่นอนสำหรับฉันเพราะธุรกิจของฉันมีขนาดเล็กเพียงใดและฉันจะไม่สามารถจ่ายค่าบำรุงรักษา Magento ได้ บริษัท อื่น ๆ ต้องการบอกว่าพวกเขาสามารถทำทุกอย่างที่ฉันต้องการและราคาที่พวกเขาอ้างนั้นยอดเยี่ยม แต่จากนั้นฉันก็กลายเป็นที่น่าสงสัยในคุณภาพของงานเนื่องจากราคาถูกและความคิดเห็นออนไลน์ ฉันได้ดูโซลูชันนอก Magento และพวกเขาดูเหมือนจะไม่เสนอฟังก์ชั่นที่ฉันต้องการหรือต้องการ ฉันเดาคำถามของฉันคือวีโอไอพีต้องการค่าใช้จ่ายมากเกินไปสำหรับธุรกิจขนาดเล็กที่ต้องพิจารณาหรือไม่? และถ้าไม่คุณจะแนะนำให้หานักพัฒนาและดูคุณภาพ / คุณค่าของงานของพวกเขาอย่างไร? สิ่งที่คุณจะพูดว่าเป็นช่วงที่ดีสำหรับค่าใช้จ่ายของชุดรูปแบบ PSD เป็น Magento ก่อนที่จะมีการใช้งานฟังก์ชันแบบกำหนดเองใด ๆ $ 2,000 5,000? $ 5,000 ถึง $ 10,000 มากกว่า? ขอบคุณที่สละเวลา!

3
Magento 1: การปรับปรุงกระบวนการพัฒนาโมดูลของฉัน (Modman, ผู้แต่ง, git)
นี่คือสิ่งที่ฉันคิดอยู่ในใจมาระยะหนึ่งแล้ว แต่ฉันไม่สามารถหาวิธีที่ถูกต้องได้ โดยพื้นฐานแล้วฉันทำงานกับ 6 เว็บไซต์ที่แตกต่างกันทั้งหมดใช้ Magento CE 1.9.2+ ในเว็บไซต์เหล่านั้นฉันใช้ส่วนขยายจำนวนมากที่ฉันและทีมที่ฉันทำงานด้วยกำลังพัฒนา (ที่นี่เรากำลังพูดถึงส่วนขยาย 50+) และรหัสสำหรับส่วนขยายเหล่านั้นจะถูกเก็บไว้ใน Bitbucket ดังนั้นฉันไม่ใช่คนเดียวที่จัดการส่วนขยายเหล่านั้นเราเป็น 3 คนที่ทำงานกับพวกเขา ในขณะนี้เมื่อฉันต้องการเพิ่มคุณสมบัติ / แก้ไขข้อบกพร่องสำหรับหนึ่งในส่วนขยายเหล่านี้นี่คือขั้นตอนการทำงานของฉัน: ติดตั้งส่วนขยายรุ่นล่าสุดบนหนึ่งในเว็บไซต์ผ่าน Modman แก้ไขข้อบกพร่อง / เพิ่มคุณสมบัติ / ทดสอบ คัดลอกการเปลี่ยนแปลงไปยังโฟลเดอร์ท้องถิ่นด้วยตนเองที่มีส่วนขยายทั้งหมดของฉัน ตกลงและผลักดันผ่าน GIT จากโฟลเดอร์ส่วนขยายนี้ไปยัง Bitbucket (1 Bitbucket repo ต่อโมดูล) จากนั้นโมดูลรุ่นใหม่สามารถติดตั้งผ่าน Modman หมายเหตุสำคัญ: ฉันใช้ modman กับ hardcopy ที่นี่ไม่มี symlink ปัญหาที่ใหญ่ที่สุดของฉันได้รับการเน้นด้วยตัวหนา: ฉันต้องการข้ามขั้นตอนนี้เพราะเป็นสาเหตุใหญ่ของปัญหา (บางไฟล์ถูกลืมบางครั้งคัดลอก / วางผิดเกี่ยวข้องกับการกระทำของมนุษย์) ดังนั้นฉันจะปรับปรุงกระบวนการทำงานของฉันเพื่อกำจัดขั้นตอนคัดลอก …

3
ฉันจะเปลี่ยนสตริงที่ส่งผ่านเหตุการณ์ได้อย่างไร
ในฟังก์ชั่นผู้สังเกตการณ์ของฉันฉันได้รับตัวแปรที่ส่งผ่านโดยเหตุการณ์เช่นนั้น: public function observerFunc(Varien_Event_Observer $observer) { $sth = $observer->getEvent()->getSth(); } ถ้าsthเป็นวัตถุฉันสามารถปรับเปลี่ยนได้โดยการเรียกวิธีการกับมัน แต่ฉันจะแก้ไขได้sthอย่างไรถ้ามันเป็นสตริงธรรมดา? ฉันลองทำสิ่งต่อไปนี้โดยไม่ประสบความสำเร็จ: public function observerFunc(Varien_Event_Observer $observer) { $sth = $observer->getEvent()->getSth(); $observer->getEvent()->setSth('test'); $observer->setSth('test'); } ฉันเพิ่งเรียนรู้ว่าบางเหตุการณ์ผ่านวัตถุการขนส่งซึ่งสามารถเปลี่ยนสตริงได้ (ขอบคุณอเล็กซ์ ) แต่เหตุการณ์page_block_html_topmenu_gethtml_afterไม่ได้ แล้วฉันจะทำอย่างไรดี กิจกรรมที่เป็นปัญหาถูกส่งแบบนี้และฉันต้องการเปลี่ยน $ html: $html = $this->_getHtml($this->_menu, $childrenWrapClass); Mage::dispatchEvent('page_block_html_topmenu_gethtml_after', array( 'menu' => $this->_menu, 'html' => $html ));

4
ทำไมรหัสคุณลักษณะมีความยาวสูงสุด
เมื่อพยายามสร้างคุณลักษณะฉันพบว่าความยาวสูงสุดของรหัสคุณลักษณะคือ 30 อักขระ ปรากฎว่านี่ไม่ใช่ข้อ จำกัด จริง ๆ - มันเป็นค่าโดยพลการอย่างสมบูรณ์ที่กำหนดโดย Mage_Eav_Model_Entity_Attribute::ATTRIBUTE_CODE_MAX_LENGTH. ถ้าอย่างนั้นทำไมถึงมีข้อ จำกัด ? และทำไมค่าเริ่มต้น 30 แทนที่จะเป็นเช่น 255 ซึ่งเป็นขีด จำกัดจริงของคอลัมน์ฐานข้อมูล PS หากใคร ๆ สามารถนึกถึงแท็กที่ดีกว่าสำหรับคำถามนี้ได้โปรดอัปเดตพวกเขา
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.