Quá trình nào bạn sử dụng để phát triển WordPress? [đóng cửa]


38

Tôi quan tâm đến cách người khác phát triển chủ đề và plugin cho WordPress. Đối với tôi, trình chỉnh sửa trong trình duyệt trong bảng quản trị chỉ không cắt nó. Hiện tại, tôi chỉ đang sử dụng IDE với plugin PHP (NetBeans), kéo thư mục web phát triển của tôi từ máy chủ của tôi, chỉnh sửa trong đó, đẩy lên để kiểm tra và sau đó di chuyển sang sống.

Tôi đang tìm cách người khác sử dụng các công cụ lựa chọn của họ để quản lý quy trình công việc để phát triển, thử nghiệm và triển khai các chủ đề, plugin và thử nghiệm các phiên bản mới nhất của WordPress trước những thứ này trước khi ra mắt.

Tôi đã biến đây thành một wiki cộng đồng để những người khác có thể chia sẻ quá trình phát triển. Tôi không mong đợi tìm được câu trả lời đúng ở đây - quy trình của bạn là của riêng bạn và tôi sẽ không mong đợi những gì bạn làm chỉ để làm việc cho bản thân hoặc bất kỳ ai khác. Tôi chỉ quan tâm đến việc cải thiện khả năng phát triển các plugin và chủ đề của mình bằng cách xem những gì hoạt động hoặc không hoạt động cho người khác.

Một câu hỏi khác ở đây thảo luận về các công cụ phần mềm cụ thể để hỗ trợ phát triển WordPress . Ở đây, tôi đang tìm kiếm thêm quy trình và phương pháp có thể được áp dụng độc lập với các công cụ, ngoại trừ một số nhiệm vụ nhất định chỉ có thể được thực hiện trong một nhóm công cụ nhất định.


Bạn có thể. Một câu hỏi tương tự đã được thực hiện trên: wordpress.stackexchange.com/questions/324/...
Tal Galili

Câu trả lời:


20

Để ghi lại, tôi chủ yếu tạo toàn bộ các trang web và plugin và triển khai chúng. Quy trình làm việc của tôi rất Ruby- và git-heavy.

Để bắt đầu một dự án mới, tôi có một kịch bản shell, đảm nhiệm toàn bộ công việc thiết lập một vhost mới và kiểm tra thẻ mới nhất của WordPress (từ kho git riêng của chúng tôi, theo dõi svn).

Hình dạng cơ bản của toàn bộ trang web là một gs repsotory tại wp-content. Nó chứa Capfile (Makefile eqiuivalent) và tệp cấu hình YAML cùng nhau đảm nhiệm việc triển khai ( http://github.com/dxw/wp-capistrano ). Ngoài ra, trong kho lưu trữ đó, tôi thêm chủ đề và plugin dưới dạng các mô đun con git (vâng, chúng tôi cũng duy trì kho git cho các plugin của bên thứ ba - chúng tôi muốn sử dụng phiên bản mới nhất mà chúng tôi đã thử nghiệm).

Đối với chủ đề, tôi có một công cụ / khung tạo mã ( github.com/dxw/wp-generate ). Điều đó có nghĩa là ít suy nghĩ về nơi mã sẽ đi và nó có một phương pháp phân tách tự nhiên giữa Chế độ xem và Mô hình / Trình điều khiển.

Khi viết plugin, tôi sử dụng dưa chuột / webrat để thực hiện phát triển dựa trên thử nghiệm ( github.com/dxw/cucumber-wordpress ).

Và để di chuyển cơ sở dữ liệu phát triển sang sản xuất, thường chỉ là trường hợp sao chép kết xuất (WP_SITEURL và WP_HOME được đặt bởi capistrano trên máy dàn / sản xuất để không tìm kiếm / thay thế).

Tôi không thể tưởng tượng được tôi đã lưu bao nhiêu giờ với các tập lệnh này.


Cảm ơn đặc biệt cho các liên kết. Nhưng bạn không có tình huống mà bạn không thể mất nội dung của cơ sở dữ liệu sản xuất? Tôi đã không tìm ra cách để làm việc ngoại trừ bằng cách chọn các bảng để tải bằng tay và thậm chí sau đó, tôi phải làm lại các mục menu.
Daniel C. Sobral

6

@Thomas Owens Câu hỏi này phần nào trùng lặp và trùng lặp câu hỏi " Phần mềm phát triển chủ đề / plugin WordPress? " Không chắc chắn nếu chúng ta nên đóng nhưng có vẻ là một trọng tâm hơi khác nhau. Vì thế...

Mac OS X

Đây là bộ công cụ thiết yếu của tôi ngay bây giờ cho Max OS X (luôn tìm kiếm tốt hơn.) Lưu ý tôi đã dùng thử NetBeans và đã từ bỏ nó. Quá chậm chạp và quá ít tính năng.

Windows Vista

Khi tôi dùng Windows Vista, bộ công cụ thiết yếu của tôi là:

  • FileZilla - Máy khách FTP
  • Firefox Fireorms - Gỡ lỗi jQuery
  • Navicat cho MySQL - Máy khách MySQL thương mại
  • Unfuddle.com - Quản lý tác vụ và kho lưu trữ SVN cho các dự án máy khách
  • PhpED - Gỡ lỗi IDE (Không có gì tốt hơn trên Windows, có thể là PhpStorm + [XDEBUG] [24])
  • HeidiSQL - Máy khách MySQL nguồn mở tuyệt vời
  • Notepad2 - Thay thế Notepad rất nhẹ và có thể sử dụng
  • RùaSVN - Khách hàng SVN
  • Fiddler 2 - Trình gỡ lỗi HTTP không thể đánh bại

Triển khai mã / di chuyển dữ liệu để chuyển đổi tên miền

Không chắc đây có phải là chính xác những gì bạn đang tìm kiếm không nhưng tôi phát triển một plugin để dễ dàng di chuyển giữa máy chủ dev cục bộ, máy chủ thử nghiệm và máy chủ triển khai. Tôi đã viết về nó ở đây:

Hi vọng điêu nay co ich

-Như


5

Đây là một câu trả lời cho quy trình làm việc, không dành riêng cho IDE hoặc plugin.

Một giải pháp hoạt động thực sự tốt cho phát triển plugin là bắt đầu với một máy chủ web apache cục bộ với mỗi biến thể wordpress được cài đặt trong một thư mục con.

Ở một vị trí riêng bên ngoài gốc máy chủ cục bộ, hãy lưu trữ các bản sao làm việc của plugin / chủ đề wordpress của bạn. Tạo một liên kết tượng trưng đến trung kế / thẻ / nhánh thích hợp trong thư mục / wp-content / plugins của mỗi biến thể wordpress.

Khi chỉnh sửa plugin trong IDE của bạn, những thay đổi bạn thực hiện, rõ ràng sẽ được thể hiện trong mỗi lần cài đặt wordpress, do đó việc kiểm tra nhiều biến thể của wordpress trở nên dễ dàng.

Về cơ bản, bạn có thể mở tab trình duyệt cho từng biến thể wordpress cục bộ và kiểm tra từng biến thể trong khi làm việc trên một dự án và một cơ sở tệp duy nhất.

Sử dụng IDE hỗ trợ SVN & FTP, tất cả những gì bạn cần làm là chỉnh sửa bản sao làm việc của mình và đưa các thay đổi của bạn trở lại kho lưu trữ.

Là một IDE Coda làm điều đó cho tôi, nhưng tôi cũng thích NetBeans và Eclipse.

Khi bạn hài lòng rằng plugin của bạn hoạt động và bạn đã cam kết những thay đổi đó với kho lưu trữ của mình, bạn có thể mở dự án wordpress của mình và xuất bản plugin đã thay đổi trực tiếp lên trang web trực tiếp của bạn.


3

Tôi có một thiết lập tương đối không phức tạp đã phát triển kể từ khi bắt đầu công việc ngày nay ~ 2,5 năm trước.

Phát triển

Tôi thực hiện tất cả sự phát triển của mình qua SSH, sử dụng Vim bên trong màn hình GNU . Các plugin Vim bao gồm:

Chia dọc và :set hiddenrất cần thiết. Tôi cũng thích một thiết bị đầu cuối 256 màu ( iTerm trên Mac OS X) với bảng màu railscasts .

Chúng tôi cũng đã dần dần sửa đổi dBug cho phù hợp với nhu cầu của chúng tôi. Đẹp thay thế cho print_r()var_dump()khi bạn biết biến là một mảng hoặc đối tượng.

Triển khai

Hiện tại tôi không làm việc trên nhiều plugin / chủ đề công cộng, vì vậy tôi không kiểm tra tính tương thích của plugin với nhiều phiên bản WordPress. Tôi mã trên máy chủ dev và chuyển mã đó vào sản xuất thông qua Subversion.


Bạn có thể nhận được var_dump rất đẹp bằng xdebug. Dấu vết ngăn xếp xdebug cũng có thể cho bạn biết các tham số nào đang được truyền cho các hàm (điều này rất hữu ích)
Taras Mankovski

3

Quy trình phát triển chủ đề WordPress

  • Chuyển đổi khung dây Mock Flow thành XHTML và CSS cơ bản

  • Cắm XHTML vào tệp mẫu master.php và chuyển đổi sang thẻ Mẫu và chức năng WP

  • Chia master.php thành các tệp mẫu khác nhau, ví dụ: header.php, index.php, sidebar.php và footer.php

  • Viết bất kỳ truy vấn tùy chỉnh và chức năng có thể cần thiết

  • Cắm bố cục CSS và thêm div {outline:1px solid red;}để giúp điều chỉnh bố cục4.

  • Tải thư mục Theme lên WordPress để thử nghiệm và phát triển thêm

Công cụ phát triển WordPress

  • Trình soạn thảo mã Aptana Studio WorkPlace được tích hợp trong FTP

  • Putty

  • màn hình kép 1920 x 1200 với trình duyệt mở trên một và trình chỉnh sửa mã khác

  • Máy tính bảng Wacom Intuis 4

  • Firebird với tốc độ Trang Yslow và Google


3

Quy trình làm việc của tôi khá đơn giản. Tôi theo kịp với 4 môi trường. Thử nghiệm, Phát triển, Dàn dựng và Sản xuất.

Quy trình làm việc

Tôi sử dụng git để kiểm soát sửa đổi của mình; Tôi bỏ qua tệp wp-config.php để tệp này không bị ghi đè khi tôi đẩy và kéo qua các vị trí khác nhau. Tôi sử dụng unuddle làm kho lưu trữ công cộng / trung tâm để người khác đẩy và lấy từ đó.

Điều này dường như làm việc khá tốt. Tôi sẽ cam kết thường xuyên như tôi có thể nhớ trong khi tôi đang làm việc trên Kiểm tra. Ít nhất một lần một ngày, nếu không nhiều hơn, tôi đồng bộ hóa với việc tháo gỡ và yêu cầu máy chủ Phát triển thay đổi. Tôi cố gắng không thực hiện bất kỳ công việc trực tiếp nào trên máy chủ, vì vậy tôi chủ yếu chỉ là thay đổi. Nếu có những thay đổi cơ sở dữ liệu quan trọng được thực hiện (bổ trợ mới, nội dung cập nhật, v.v.) thì tôi sẽ kết xuất nó từ Thử nghiệm của mình; tạo một bản sao lưu của Phát triển và nhập bãi chứa.

Tôi sử dụng quy trình tương tự cho Staging. Dàn dựng nằm trên cùng một máy chủ khi sản xuất, hãy kiểm tra kỹ việc đánh bóng và đảm bảo tất cả các cài đặt và mô-đun đang hoạt động trên máy chủ sản xuất. Khi tôi sẵn sàng, tôi sao lưu tất cả các tệp sản xuất và cơ sở dữ liệu, và sao chép qua các tệp và cơ sở dữ liệu từ dàn dựng.

Vì wp-config.php không có trong git, nên việc đẩy và kéo mọi thứ xung quanh khá đơn giản. Khi chuyển sang sản xuất từ ​​dàn, tôi sao chép qua các tệp và không sử dụng git, vì vậy tôi phải đảm bảo wp-config.php là chính xác.

Tôi đã hỏi một câu hỏi tương tự , và tôi sẽ xem xét sử dụng plugin này.

Tôi cũng đã nghĩ về việc sử dụng Capistrano; và tạo một kịch bản di chuyển rất chi tiết sẽ đi qua và xử lý tất cả các tệp và sao lưu / di chuyển cơ sở dữ liệu cũng như cập nhật các đường dẫn tệp và URL.

Công cụ

  • Textmate cho trình soạn thảo của tôi, mặc dù tôi bắt đầu sử dụng MacVim. Tôi sử dụng vim khi trên linux.
  • Sequel Pro để thao tác cơ sở dữ liệu. Nếu tôi không thể kết nối với nó, tôi sẽ sử dụng PHPMyAdmin
  • Truyền cho FTP nếu tôi cần.
  • git để kiểm soát sửa đổi. Chủ yếu là theo dòng lệnh, mặc dù tôi đã sử dụng ứng dụng khách trong Textmate và GittiApp một chút.

1

Một điều giúp tôi (đặc biệt là khi làm việc trên nhiều chủ đề máy khách) là sử dụng cài đặt WordPress Multisite trên máy chủ dev của tôi. Bằng cách đó, tôi có thể có nhiều công việc mở khi cần và không phải lo lắng về việc khách hàng A nhìn thấy chủ đề của khách hàng B. Kết hợp điều này với một gói nội dung mẫu toàn diện mà tôi tải lên mỗi khi tôi tạo một trang web mới và bạn đã có một hệ thống dev tuyệt vời.


0

Tôi thực hiện từ hack tại chỗ trên máy chủ trong ruột của hệ thống vòng đời đến chu kỳ dev / test / giai đoạn / vòng đời có cấu trúc hơn bằng cách sử dụng các hệ thống kiểm soát phiên bản và kiểm tra tự động. Nó chỉ phụ thuộc vào công việc.

Bên cạnh đó tôi báo cáo lỗi trở lại dự án wordpress khi tôi chạy qua chúng.

Để phát triển plugin, tôi cố gắng không phát minh lại bánh xe mọi lúc để xây dựng những cái mới dựa trên các nguyên tắc và mẫu hiện có.


0

Đây là quy trình làm việc của tôi:

  • Tôi bắt đầu với việc tạo thư mục của dự án ngay khi tôi nhận được các yêu cầu và thiết kế của trang web.
  • phiên bản Statictheme/pluginthư mục trong DynamicThư mục bằng Git.
  • tạo máy chủ ảo cho dự án. Tôi theo quy ước này:

    http://project1.dev/

    http://project1.static.dev (tùy chọn)

  • Tôi thường theo tổ chức thư mục này:

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

Tôi biết rằng tôi chưa sử dụng một buildcông cụ hàng ngày, điều này khiến tôi cảm thấy tồi tệ.

Nhưng tôi sử dụng công cụ xây dựng ANT cho dự án Sprite2CSS của mình cùng với một vài tập lệnh PHP để tiêu thụ ANT.

Công cụ


Cho dù tôi đang dùng Windows hay Ubuntu, tôi đều sử dụng như sau:

  • Netbeans + SublimeText2 + Notepad ++
  • WAMP - (PHP)
  • FakeMail
  • Git
  • Chrome và DevTools + Firefox với Fireorms và Safari + IE để thử nghiệm
  • YSlow!
  • FTP tích hợp của Filezilla / WinSCP / NB
  • Dấu nhắc lệnh Cygwin +
  • Nhà soạn nhạc
  • NodeJS + NPM
  • Phiên bản cộng đồng SQLYog + PHPMyAdmin

Tôi sẵn sàng để đề xuất cải thiện quy trình làm việc của tôi.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.