أنا مهتم بكيفية قيام الآخرين بتطوير السمات والإضافات لـ WordPress. بالنسبة لي ، لا يقوم محرر المتصفح الموجود بلوحة المشرف بقصه. حاليًا ، أنا فقط أستخدم IDE مع PHP plugin (NetBeans) ، وسحب دليل الويب الخاص بالتطوير من الخادم الخاص بي ، وأقوم بالتحرير فيه ، والضغط لأعلى للاختبار ، ثم تهاجر للعيش.
أنا أبحث عن كيفية استخدام الآخرين لأدواتهم المفضلة لإدارة سير العمل لتطوير واختبار ونشر السمات والإضافات واختبار أحدث إصدارات WordPress مقابلها قبل بدء البث المباشر.
لقد جعلت هذا ويكي مجتمعيًا حتى يتمكن الآخرون من المشاركة هناك في عملية التطوير. لا أتوقع العثور على إجابة صحيحة فردية هنا - عمليتك هي الخاصة بك ، ولا أتوقع ما تفعله فقط للعمل من أجل نفسي أو لأي شخص آخر. أنا مهتم فقط بتحسين قدرتي على تطوير الإضافات والسمات من خلال رؤية ما يصلح أو لا يصلح لأشخاص آخرين.
يناقش سؤال آخر هنا أدوات برمجية لدعم تطوير WordPress . هنا ، أبحث عن المزيد من العمليات والمنهجية التي يمكن تطبيقها بشكل مستقل عن الأدوات ، باستثناء بعض المهام التي قد يتم تنفيذها فقط في مجموعة معينة من الأدوات.
بالنسبة للسجل ، أقوم بإنشاء مواقع ويب ومكونات إضافية بالكامل ونشرها. سير العمل الخاص بي هو روبي للغاية وثقيل.
للبدء في مشروع جديد ، لديّ برنامج نصي من شل يعتني بكامل أعمال إعداد مضيف جديد ومراجعة أحدث علامة من WordPress (من مستودع git الخاص بنا ، والذي يتتبع svn).
الشكل الأساسي لموقع ويب بأكمله هو مستودع git في محتوى wp. يحتوي على ملف Capfile (برنامج Makefile eqiuivalent لكابسترانو) وملف تكوين YAML يعتنيان بالنشر ( http://github.com/dxw/wp-capistrano ). داخل هذا المستودع أيضًا ، أضيف السمة والمكونات الإضافية كوحدات فرعية git (نعم ، نحافظ على مستودعات git للمكونات الإضافية لأطراف أخرى أيضًا - نود أن نستخدم أحدث إصدار قمنا باختباره شخصيًا).
بالنسبة للسمة ، لديّ أداة/إطار لإنشاء الشفرة ( github.com/dxw/wp-generate ). إنه يعني التفكير بشكل أقل في المكان الذي يجب أن يذهب فيه الكود ، وله طريقة طبيعية للفصل بين طريقة العرض والطراز/جهاز التحكم.
عند كتابة الإضافات ، أستخدم الخيار/webrat للقيام بالتطوير القائم على الاختبار ( github.com/dxw/cucumber-wordpress ).
ولترحيل قواعد بيانات التطوير إلى الإنتاج ، عادة ما تكون مجرد حالة لنسخ ملف التفريغ (WP_SITEURL و WP_HOME يتم تعيينهما بواسطة capistrano على آلات التدريج/الإنتاج ، لذا لا يوجد بحث/استبدال).
لا يمكنني تخيل عدد الساعات التي قمت بحفظها باستخدام هذه النصوص.
Thomas Owens هذا السؤال يتداخل إلى حد ما ويكرر السؤال " برنامج لتطوير السمات/البرنامج المساعد WordPress؟ ." لست متأكدا مما إذا كان يجب علينا إغلاق ولكن يبدو تركيز مختلف قليلا. وبالتالي...
هنا مجموعة أدواتي الأساسية في الوقت الحالي لنظام التشغيل Max OS X (أبحث دائمًا عن الأفضل). لاحظ أنني جربت NetBeans وتخلّيت عن ذلك. بطيء جدًا وميزات قليلة جدًا.
عندما كنت على نظام التشغيل Windows Vista ، مجموعة أدواتي الأساسية كانت:
لست متأكدًا مما إذا كان هذا هو ما تبحث عنه بالضبط ، لكنني أقوم بتطوير مكون إضافي لتخفيف الهجرات بين خادم dev المحلي وخادم الاختبار وخادم النشر. لقد كتبت عن ذلك هنا:
أتمنى أن يساعدك هذا
مايك
هذه إجابة لسير العمل ، ليست خاصة بـ IDE أو مكون إضافي.
أحد الحلول التي تعمل بشكل جيد لتطوير البرنامج المساعد هو البدء بخادم ويب Apache محلي مع تثبيت كل تغيير في ووردبريس في مجلد فرعي.
في موقع منفصل خارج جذر الخادم المحلي ، قم بتخزين نسخ عمل ووردبريس المساعد/الموضوع. إنشاء ارتباط إلى الجذع/العلامة/الفرع المناسب في مجلد/wp-content/plugins لكل تغيير وورد.
عند تحرير المكوّن الإضافي في IDE التغييرات التي تجريها ، سيتم تمثيلها بوضوح في كل عملية تثبيت وورد ، لذلك يصبح من السهل اختبار أشكال متعددة من وورد.
في الأساس ، يمكن أن يكون لديك علامة تبويب متصفح مفتوحة لكل تغيير وورد محلي واختبار كل منها أثناء العمل على مشروع واحد وقاعدة ملف واحدة.
باستخدام IDE يدعم SVN و FTP ، كل ما عليك القيام به هو تحرير نسخة العمل الخاصة بك وإلزام التغييرات التي أجريتها على المستودع.
بصفتي IDE Coda يفعل ذلك بالنسبة لي ، لكني أحب NetBeans و Eclipse أيضًا.
بمجرد رضاك عن عمل المكوّن الإضافي الخاص بك والتزامك بهذه التغييرات في مستودعك ، يمكنك حينئذٍ فتح مشروع وورد الخاص بك ونشر المكوّن الإضافي الذي تم تغييره مباشرةً على موقعك المباشر.
لديّ إعداد غير معقد نسبيًا تطور منذ بدء وظيفتي الحالية ~ قبل 2.5 عام.
أفعل كل ما عندي من تطوير SSH ، باستخدام Vim الداخل GNU screen . الإضافات VIM تشمل:
الانقسامات العمودية و :set hidden
ضرورية. أنا أفضل أيضًا محطة طرفية ملونة ( iTerm على Mac OS X) مع railscasts نظام الألوان.
لقد قمنا أيضًا بتعديل ببطء dBug ليناسب احتياجاتنا. بديل جيد لـ print_r()
و var_dump()
عندما تعرف أن المتغير عبارة عن صفيف أو كائن.
في الوقت الحالي ، لا أعمل على العديد من الإضافات/السمات العامة ، لذلك لا أختبر توافق المكونات الإضافية مع إصدارات متعددة من WordPress. أنا رمز على خادم ديف ونقل هذا الرمز إلى الإنتاج عبر التخريب.
وورد موضوع عملية التنمية
قم بتحويل إطار سلك Mock Flow إلى XHTML و CSS أساسي
قم بتوصيل XHTML إلى ملف قالب master.php وتحويله إلى علامات القالب ووظائف WP
قسِّم master.php إلى ملفات القوالب المختلفة ، مثل: header.php و index.php و sidebar.php و footer.php
اكتب أي استعلامات ووظائف مخصصة قد تكون مطلوبة
قم بتوصيل تخطيط CSS وأضف div {outline:1px solid red;}
للمساعدة في تعديل layout4.
قم بتحميل مجلد Theme إلى WordPress للاختبار والمزيد من التطوير
أدوات تطوير WordPress
محرر كود Aptana Studio WorkPlace مع بروتوكول FTP مدمج
المعجون
المزدوج 1920 × 1200 شاشات مع متصفح مفتوح على واحد ومحرر رمز من جهة أخرى
Wacom Intuis 4 tablet
Firebug مع Yslow وسرعة صفحة Google
سير العمل الخاص بي بسيط للغاية. أنا مواكبة 4 البيئات. الاختبار والتطوير والتدريج والإنتاج.
يمكنني استخدام بوابة للتحكم مراجعة بلدي ؛ أتجاهل ملف wp-config.php حتى لا يتم الكتابة فوق هذا الملف أثناء قيامي بالدفع والسحب عبر المواقع المختلفة. يمكنني استخدام عملية الكشف عن المستودع كمستودع عام/مركزي للآخرين للدفع والسحب منه.
هذا يبدو للعمل بشكل جيد إلى حد ما. سألتزم كلما استطعت التذكر أثناء العمل على الاختبار. مرة واحدة على الأقل يوميًا ، إن لم يكن أكثر ، أقوم بمزامنة عملية فك التشفير وجذب خادم تطوير التغييرات. أحاول ألا أقوم بأي عمل مباشر على الخادم ، لذلك أنا فقط أسحب التغييرات. إذا كانت هناك تغييرات كبيرة في قاعدة البيانات التي تم إجراؤها (مكونات إضافية جديدة ، محتوى محدّث ، إلخ) ، فسوف أتخلص من الاختبار ؛ عمل نسخة احتياطية من التنمية واستيراد تفريغ.
يمكنني استخدام نفس العملية للإعداد. يتم تحديد موقع التدريج على نفس الخادم مثل الإنتاج ، ثم تحقق من تلميعه وتأكد من أن جميع الإعدادات والوحدات النمطية تعمل على خادم الإنتاج. عندما أكون جاهزًا ، أقوم بعمل نسخة احتياطية لجميع ملفات الإنتاج وقاعدة البيانات ، ونسخ الملفات وقاعدة البيانات من التدريج.
نظرًا لأن wp-config.php ليس في موقعه ، فإنه يجعل من السهل للغاية دفع الأشياء وسحبها. عند الانتقال من مرحلة الإنتاج إلى مرحلة الإنتاج ، أقوم بنسخ الملفات وليس استخدام git ، لذلك يجب أن أتأكد من صحة wp-config.php.
لقد طرحت/ سؤال ، وسأبحث في استخدام هذا البرنامج المساعد.
لقد فكرت أيضا في استخدام كابيسترانو. وإنشاء برنامج نصي مفصل للغاية للترحيل والذي سيتم من خلاله التعامل مع جميع الملفات وعمليات النسخ الاحتياطي/الترحيل في قاعدة البيانات بالإضافة إلى تحديث مسارات الملفات وعناوين URL.
هناك شيء واحد يساعدني (خاصةً عند العمل على عدة سمات للعميل) وهو استخدام تثبيت WordPress Multisite على خادم dev. وبهذه الطريقة ، يمكنني الحصول على أكبر عدد ممكن من الوظائف المفتوحة حسب الحاجة ، ولا تقلق بشأن موضوع العميل "رؤية العميل ب". اقترن هذا مع حزمة شاملة من عينة المحتوى التي أحملها في كل مرة أقوم فيها بإنشاء موقع جديد ، وكان لديك نظام مطور رائع.
أفعل من القرصنة الموضعية على الخادم في أحشاء نظام الحياة إلى دورة تطوير/اختبار/مرحلة/حياة أكثر تنظيمًا باستخدام أنظمة التحكم في الإصدار والاختبارات الآلية. ذلك يعتمد فقط على الوظيفة.
بجانب ذلك أقوم بالإبلاغ عن الأخطاء في مشروع وورد عندما دهست عليها.
بالنسبة لتطوير المكونات الإضافية ، أحاول عدم إعادة اختراع العجلة طوال الوقت حتى أقوم ببناء أدوات جديدة تستند إلى المبادئ والأنماط الحالية.
إليك سير العمل الخاص بي:
Static
والمجلد theme/plugin
في المجلدات Dynamic
باستخدام Git.إنشاء المضيف الظاهري للمشروع. أنا أتبع هذه الاتفاقية:
http://project1.static.dev (اختياريًا)
عادةً ما أتبع تنظيم المجلد هذا:
Projects
Project1Name
Docs //Requirements docs, emails, other related documents.
//This directory may contain directories with names as dates
//(e.g 2014-01-01) to stay super organized :)
Designs //All PSDs go here
Data //Database backup for the project,
Site
Dynamic //WordPress generally
Static //I don't always create a static version. I did a couple
//of times in the past. I use the same structure inside
//the theme or plugin I'm developing
js
css
img
Project2Name and so on ...
أدرك أنني لا أستخدم بعد أداة build
يوميًا ، مما يجعلني أشعر بالسوء.
لكنني لا أستخدم أداة إنشاء ANT الخاصة بي مشروع Sprite2CSS مقترنًا ببضع نصوص PHP لاستهلاك ANT.
سواء كنت على نظام Windows أو Ubuntu ، أستخدم ما يلي:
أنا منفتح على اقتراحات لتحسين سير العمل الخاص بي.
أعمل على Windows باستخدام Denver و FileZilla و Notepad ++ و Firefox Firebug والمفتشين الآخرين (الروابط أعلاه) و/cPanel و dbForge Studio for MySQL