Proses apa yang Anda gunakan untuk pengembangan WordPress? [Tutup]

38

Saya tertarik pada bagaimana orang lain mengembangkan tema dan plugin untuk WordPress. Bagi saya, editor dalam browser di panel admin tidak memotongnya. Saat ini, saya hanya menggunakan IDE dengan plugin PHP (NetBeans), menarik direktori web pengembangan saya dari server saya, mengedit di sana, mendorong untuk menguji, dan kemudian bermigrasi ke hidup.

Saya mencari bagaimana orang lain menggunakan alat pilihan mereka untuk mengelola alur kerja untuk mengembangkan, menguji, dan menggunakan tema, plugin, dan menguji versi terbaru WordPress terhadap ini sebelum ditayangkan.

Saya membuat ini sebagai wiki komunitas sehingga orang lain dapat berbagi proses pengembangan di sana. Saya tidak mengharapkan untuk menemukan jawaban yang benar di sini - proses Anda adalah milik Anda, dan saya tidak akan mengharapkan apa yang Anda lakukan untuk hanya bekerja untuk diri saya sendiri atau orang lain. Saya hanya tertarik untuk meningkatkan kemampuan saya mengembangkan plugin dan tema dengan melihat apa yang berhasil atau tidak bekerja untuk orang lain.

Pertanyaan lain di sini membahas alat perangkat lunak tertentu untuk mendukung pengembangan WordPress . Di sini, saya mencari lebih banyak proses dan metodologi yang dapat diterapkan secara independen dari alat-alat, dengan pengecualian tugas-tugas tertentu yang mungkin hanya dapat diselesaikan dalam kelompok alat tertentu.

Thomas Owens
sumber
Kamu mungkin. Pertanyaan serupa sudah diajukan pada: wordpress.stackexchange.com/questions/324/…
Tal Galili

Jawaban:

20

Sebagai catatan, saya terutama membuat seluruh situs Web dan plugin, dan menyebarkannya. Alur kerja saya sangat Ruby dan git-berat.

Untuk memulai proyek baru, saya memiliki skrip shell yang menangani seluruh bisnis pengaturan vhost baru dan memeriksa tag WordPress terbaru (dari repositori git kami sendiri, yang melacak svn).

Bentuk dasar dari seluruh situs Web adalah repositori git di wp-content. Itu berisi Capfile (makefile eqiuivalent capistrano) dan file konfigurasi YAML yang bersama-sama menangani penyebaran ( http://github.com/dxw/wp-capistrano ). Juga di dalam repositori itu saya menambahkan tema dan plugin sebagai sub-modul git (ya, kami juga memelihara repositori git untuk plugin pihak ketiga - kami ingin menggunakan versi terbaru yang telah kami uji secara pribadi).

Untuk temanya, saya memiliki alat / kerangka pembuatan kode ( github.com/dxw/wp-generate ). Ini berarti lebih sedikit memikirkan ke mana kode harus pergi, dan memiliki metode pemisahan alami antara View dan Model / Controller.

Saat menulis plugin, saya menggunakan mentimun / webrat untuk melakukan pengembangan berbasis tes ( github.com/dxw/cucumber-wordpress ).

Dan untuk memigrasi basis data pengembangan ke produksi, biasanya hanya kasus menyalin dump atas (WP_SITEURL dan WP_HOME ditetapkan oleh capistrano pada mesin pementasan / produksi sehingga tidak ada pencarian / ganti).

Saya tidak bisa membayangkan berapa jam saya telah menyimpan dengan skrip ini.

holizz
sumber
Terima kasih khusus untuk tautannya. Tetapi tidakkah Anda memiliki situasi di mana Anda tidak dapat kehilangan konten dari basis data produksi? Saya belum menemukan cara untuk bekerja kecuali dengan memilih tabel mana yang akan dimuat dengan tangan, dan, bahkan kemudian, saya harus mengulang item menu.
Daniel C. Sobral
6

@ Thomas Owens Pertanyaan ini agak tumpang tindih dan menggandakan pertanyaan " Pengembangan perangkat lunak untuk tema WordPress / plugin? " Tidak yakin apakah kita harus menutup tetapi sepertinya fokusnya sedikit berbeda. Begitu...

Mac OS X

Ini adalah toolset esensial saya sekarang untuk Max OS X (selalu mencari yang lebih baik.) Catatan saya mencoba NetBeans dan menyerah. Fitur terlalu lambat dan sedikit.

Windows Vista

Ketika saya menggunakan Windows Vista, perangkat esensial saya adalah:

Penerapan Kode / Migrasi Data untuk Beralih Domain

Tidak yakin apakah ini yang Anda cari, tetapi saya mengembangkan sebuah plugin untuk memudahkan migrasi antara server dev lokal, server pengujian, dan server penempatan. Saya menulis tentang itu di sini:

Semoga ini membantu

-Mike

MikeSchinkel
sumber
5

Ini adalah jawaban alur kerja, tidak khusus untuk IDE atau plugin.

Solusi yang bekerja sangat baik untuk pengembangan plugin adalah mulai dengan server web apache lokal dengan setiap variasi wordpress diinstal di sub-folder.

Di lokasi terpisah di luar root server lokal, simpan salinan wordpress / theme working copy Anda. Buat symlink ke trunk / tag / branch yang sesuai di folder / wp-content / plugins dari setiap variasi wordpress.

Saat mengedit plugin di IDE Anda perubahan yang Anda buat, jelas akan diwakili di setiap instalasi wordpress, sehingga menjadi mudah untuk menguji beberapa variasi wordpress.

Pada dasarnya, Anda dapat memiliki tab browser terbuka untuk setiap variasi wordpress lokal dan menguji masing-masing sambil bekerja pada satu proyek dan basis file tunggal.

Menggunakan IDE yang mendukung SVN & FTP yang perlu Anda lakukan adalah mengedit copy pekerjaan Anda dan mengkomit perubahan Anda kembali ke repositori.

Sebagai IDE Coda melakukannya untuk saya, tapi saya juga suka NetBeans dan Eclipse.

Setelah Anda senang bahwa plugin Anda berfungsi dan Anda telah melakukan perubahan itu ke repositori Anda, Anda kemudian dapat membuka proyek wordpress Anda dan mempublikasikan plugin yang diubah secara langsung ke situs langsung Anda.

Leetagg
sumber
3

Saya memiliki pengaturan yang relatif tidak rumit yang telah berkembang sejak memulai pekerjaan saya sekarang ~ 2,5 tahun yang lalu.

Mengembangkan

Saya melakukan semua pengembangan saya melalui SSH, menggunakan Vim di dalam layar GNU . Plugin Vim meliputi:

Perpecahan vertikal dan :set hiddensangat penting. Saya juga lebih suka terminal 256 warna ( iTerm pada Mac OS X) dengan skema warna railscasts .

Kami juga telah perlahan memodifikasi dBug agar sesuai dengan kebutuhan kami. Pengganti yang bagus untuk print_r()dan var_dump()ketika Anda tahu variabelnya adalah array atau objek.

Menyebarkan

Saat ini saya tidak bekerja pada banyak plugin / tema publik, jadi saya tidak menguji kompatibilitas plugin dengan beberapa versi WordPress. Saya kode pada server dev dan memindahkan kode itu ke dalam produksi melalui Subversion.

Annika Backstrom
sumber
Anda bisa mendapatkan var_dump yang sangat bagus menggunakan xdebug. jejak stack xdebug juga dapat memberi tahu Anda parameter apa yang sedang diteruskan ke fungsi (ini sangat membantu)
Taras Mankovski
3

Proses Pengembangan Tema WordPress

  • Konversi bingkai kawat Mock Flow menjadi XHTML dan CSS dasar

  • Masukkan XHTML ke file template master.php dan konversikan ke tag Template dan fungsi WP

  • Bagi master.php ke dalam berbagai file templat yaitu: header.php, index.php, sidebar.php, dan footer.php

  • Tuliskan kueri dan fungsi khusus yang mungkin diperlukan

  • Hubungkan tata letak CSS dan tambahkan div {outline:1px solid red;}untuk membantu mengubah tata letak4.

  • Unggah folder Tema ke WordPress untuk pengujian dan pengembangan lebih lanjut

Alat Pengembangan WordPress

  • Editor kode Aptana Studio WorkPlace dengan built in FTP

  • Dempul

  • monitor ganda 1920 x 1200 dengan browser terbuka di satu dan editor kode di lain

  • Tablet Wacom Intuis 4

  • Firebug dengan Yslow dan Google Page speed

Chris_O
sumber
3

Alur kerja saya cukup sederhana. Saya mengikuti 4 lingkungan. Pengujian, Pengembangan, Pementasan dan Produksi.

Alur kerja

Saya menggunakan git untuk kontrol revisi saya; Saya mengabaikan file wp-config.php sehingga file ini tidak dapat ditimpa saat saya mendorong dan menarik melintasi lokasi yang berbeda. Saya menggunakan unfuddle sebagai repositori publik / pusat untuk mendorong dan menarik orang lain.

Ini tampaknya bekerja dengan cukup baik. Saya akan berkomitmen sesering mungkin ketika saya mengerjakan Pengujian. Setidaknya sekali sehari, jika tidak lebih, saya menyinkronkannya dengan unuddle dan meminta server Development melakukan perubahan. Saya mencoba untuk tidak melakukan pekerjaan langsung di server, jadi saya terutama hanya melakukan perubahan. Jika ada perubahan signifikan pada basis data (plugin baru, konten yang diperbarui, dll) maka saya akan membuangnya dari Pengujian saya; buat cadangan Pengembangan dan impor dump.

Saya menggunakan proses yang sama untuk Pementasan. Pementasan duduk di server yang sama dengan produksi itu memeriksa polandia dan pastikan semua pengaturan dan modul bekerja di server produksi. Ketika saya siap, saya membuat cadangan semua file produksi dan database, dan menyalin file dan database dari pementasan.

Karena wp-config.php tidak ada di git, itu membuatnya cukup mudah untuk mendorong dan menarik sesuatu. Ketika pindah ke produksi dari pementasan, saya menyalin file, dan tidak menggunakan git, jadi saya harus memastikan wp-config.php sudah benar.

Saya telah mengajukan pertanyaan serupa , dan saya akan melihat ke dalam menggunakan plugin ini.

Saya juga berpikir untuk menggunakan Capistrano; dan membuat skrip migrasi yang sangat terperinci yang akan melewati dan menangani semua file dan cadangan / migrasi basis data serta memperbarui jalur file dan URL.

Alat

  • Textmate untuk editor saya, meskipun saya mulai menggunakan MacVim. Saya menggunakan vim ketika di linux.
  • Sequel Pro untuk manipulasi basis data. Jika saya tidak bisa terhubung dengannya saya akan menggunakan PHPMyAdmin
  • Kirim untuk FTP jika saya membutuhkannya.
  • git untuk kontrol revisi. Sebagian besar berdasarkan baris perintah, meskipun saya telah menggunakan klien di Textmate dan GittiApp sedikit.
Ryan Gibbons
sumber
1

Satu hal yang membantu saya (terutama ketika mengerjakan beberapa tema klien) adalah menggunakan instalasi WordPress Multisite di server dev saya. Dengan begitu, saya dapat memiliki pekerjaan terbuka sebanyak yang diperlukan, dan tidak perlu khawatir tentang tema klien A yang melihat klien B. Pasangkan ini dengan paket konten sampel komprehensif yang saya muat setiap kali saya membuat situs baru, dan Anda memiliki sistem pengembang yang luar biasa.

Keith S.
sumber
0

Saya lakukan dari in-place hacking di server dalam nyali sistem kehidupan ke siklus dev / test / stage / life yang lebih terstruktur menggunakan sistem kontrol versi dan tes otomatis. Itu hanya tergantung pada pekerjaan.

Di sebelahnya saya melaporkan bug kembali ke proyek wordpress ketika saya menimpanya.

Untuk pengembangan plugin saya mencoba untuk tidak menemukan kembali roda sepanjang waktu sehingga untuk membangun yang baru berdasarkan prinsip dan pola yang ada.

hakre
sumber
0

Inilah alur kerja saya:

  • Saya mulai dengan membuat direktori proyek segera setelah saya mendapatkan persyaratan dan desain situs web.
  • versi Staticdan theme/pluginfolder di DynamicFolder menggunakan Git.
  • buat virtual host untuk proyek tersebut. Saya mengikuti konvensi ini:

    http://project1.dev/

    http://project1.static.dev (opsional)

  • Saya biasanya mengikuti organisasi folder ini:

    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 ...

Saya sadar bahwa saya belum menggunakan buildalat pada hari ke hari, yang membuat saya merasa tidak enak.

Tapi saya menggunakan alat ANT build untuk proyek Sprite2CSS saya ditambah dengan beberapa skrip PHP untuk konsumsi ANT.

Alat


Apakah saya menggunakan Windows atau Ubuntu, saya menggunakan yang berikut ini:

  • Netbeans + SublimeText2 + Notepad ++
  • WAMP - (PHP)
  • FakeMail
  • Git
  • Chrome dan DevTools + Firefox dengan Firebug dan Safari + IE untuk pengujian
  • YSlow!
  • Filezilla / WinSCP / NB built-in FTP
  • Cygwin + Command prompt
  • Komposer
  • NodeJS + NPM
  • SQLYog Community Edition + PHPMyAdmin

Saya terbuka pada saran untuk meningkatkan alur kerja saya.

JeyKeu
sumber
0

Saya bekerja di Windows dengan Denver , FileZilla, Notepad ++, Firefox Firebug dan inspektur lainnya (tautan ada di atas), cPanel dan dbForge Studio untuk MySQL

Michael Pozdnakov
sumber