他の人がWordPress用のテーマやプラグインを開発する方法に興味があります。私には、管理者パネルのブラウザ内エディタではうまくいかない。現在は、IDEとPHPプラグイン(NetBeans)を使用して、開発用Webディレクトリをサーバーから取得し、そこで編集し、テスト用にプッシュします。ライブに移行しています。
私は、他の人々がどのように彼らの選択したツールを使ってテーマ、プラグインを開発し、テストし、そして展開するためのワークフローを管理し、そしてこれらに対して最新バージョンのWordPressをテストするかを探しています。
他の人々がそこで開発プロセスを共有できるように、私はこれをコミュニティウィキにしました。私はここで唯一の正しい答えを見つけることを期待していません - あなたのプロセスはあなた自身のものです、そして私はあなたが私自身あるいは他の誰かのために働くためにあなたがすることを期待しません。私は、プラグインとテーマを開発する能力を他の人にとってどのように機能するかしないかを見ることによって向上させることに興味を持っています。
ここでの別の質問はWordPress開発をサポートするための特定の ソフトウェアツールについて - 議論します。ここでは、特定のツールファミリーでしか達成できない特定のタスクを除いて、ツールとは無関係に適用できるプロセスと方法論を探しています。
記録として、私は主にWebサイト全体とプラグインを作成し、それらをデプロイします。私のワークフローはとてもRubyとgitを多用しています。
新しいプロジェクトを始めるために、新しいvhostを設定して(svnを追跡する私たち自身のgitリポジトリから)WordPressの最新のタグをチェックアウトするというビジネス全体の面倒を見るシェルスクリプトがあります。
Webサイト全体の基本的な形は、wp-contentのgitリポジトリです。これにはCapfile(capistranoのMakefile eqiuivalent)とYAML設定ファイルが含まれており、これらが一緒になってデプロイメントの面倒を見ます( http://github.com/dxw/wp-capistrano )。そのリポジトリの中にもテーマとプラグインをgitサブモジュールとして追加しました(そう、サードパーティプラグインのためにもgitリポジトリを保守しています - 私たちが個人的にテストした最新バージョンを使いたいです)。
テーマは、コード生成ツール/フレームワーク( github.com/dxw/wp-generate )です。それはコードがどこに行くべきかについて考えることをより少なくすることを意味し、そしてそれはViewとModel/Controllerの間の分離の自然な方法を持ちます。
プラグインを書くときは、テスト駆動開発をするのにcucumber/webratを使います( github.com/dxw/cucumber-wordpress )。
開発用データベースを本番環境に移行する場合、通常はダンプをコピーするだけの場合です(WP_SITEURLとWP_HOMEはステージング/本番マシンでcapistranoによって設定されるため、検索/置換は不要です)。
私はこれらのスクリプトで何時間節約したか想像できません。
@Thomas Owens この質問は「 WordPressテーマのためのソフトウェア/プラグイン開発? 」と若干重複し、重複しています。閉じるべきかどうかは定かではありませんが、それは少し異なる焦点のようです。そう...
ここに Max OS Xのための今の私の重要なツールセット (常により良いものを探しています。)遅すぎて機能が少なすぎます。
私がWindows Vistaで だったとき、私の重要なツールセット は次のようになりました。
これがまさにあなたが探しているものであるかどうかはわからないが、私はローカル開発サーバー、テストサーバーおよびデプロイメントサーバー間の移行を容易にするためのプラグインを開発している。私はそれについてここに書いた:
お役に立てれば
-マイク
これはワークフローの回答であり、IDEやプラグインに固有のものではありません。
プラグイン開発のために本当にうまくいく解決策は、サブフォルダーにインストールされた各ワードプレスのバリエーションを持つローカルのApacheウェブサーバーから始めることです。
ローカルサーバーのルート以外の別の場所に、ワードプレスプラグイン/テーマの作業コピーを保存します。各ワードプレスバリエーションの/ wp-content/pluginsフォルダーにある適切なtrunk/tag/branchへのシンボリックリンクを作成します。
IDE内のプラグインを編集するとき、行った変更は各Wordpressインストールで明らかに表されるので、Wordpressの複数のバリエーションをテストするのは簡単になります。
基本的には、ローカルのワードプレスのバリエーションごとにブラウザのタブを開いて、1つのプロジェクトと1つのファイルベースで作業しながらそれぞれをテストすることができます。
SVNとFTPをサポートするIDEを使うことはあなたがする必要があるすべてがあなたの作業コピーを編集しそしてあなたの変更をリポジトリにコミットすることです。
IDE Codaが私のためにそれをするように、私はNetBeansとEclipseも同様に好きです。
プラグインが機能し、それらの変更をリポジトリにコミットしたことを確認したら、WordPressプロジェクトを開いて、変更したプラグインをライブサイトに直接公開できます。
私は2.5年前に私の現在の仕事を始めてから進化してきた比較的複雑でないセットアップをしています。
私はSSHを使ってすべての開発を行い、 Vim inside GNU screen を使います。 Vimプラグインは次のとおりです。
垂直分割と:set hidden
は必須です。私はまた、 railscasts 配色の256色端末(Mac OS Xでは iTerm )を好む。
私たちはまた、私たちのニーズに合わせて dBug をゆっくり修正してきました。変数が配列またはオブジェクトであることがわかっている場合は、print_r()
とvar_dump()
の代わりに使えます。
現時点で私は多くの公開プラグイン/テーマに取り組んでいませんので、私はWordPressの複数のバージョンとのプラグイン互換性をテストしません。私は開発用サーバーにコーディングし、そのコードをSubversion経由で本番環境に移行します。
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;}
を追加してください。
テストとさらなる開発のためにWordPressにテーマフォルダをアップロードする
WordPress開発ツール
FTP内蔵のAptana Studio WorkPlaceコードエディタ
パテ
一方がブラウザで他方がコードエディタで開いているデュアル1920 x 1200モニタ
ワコムIntuis 4タブレット
YslowとGoogle PageのスピードでFirebug
私のワークフローはとても簡単です。私は4つの環境についていく。テスト、開発、ステージング、生産.
私はリビジョン管理にgitを使います。 wp-config.phpファイルは無視して、このファイルが異なる場所をプッシュしてプルしても上書きされないようにします。他の人がプッシュしたりプルしたりするためのパブリック/セントラルリポジトリとしてunfuddleを使用します。
これはかなりうまくいくようです。テストをしている間に覚えている限り、何度もコミットします。少なくとも1日に1回、それ以上ではないにしても、私は混乱しないように同期し、開発サーバーに変更を反映させます。私はサーバー上で直接作業をしないようにしているので、私は主に変更を引き込むだけです。重要なデータベースの変更(新しいプラグイン、更新されたコンテンツなど)があった場合は、テストからそれをダンプします。開発のバックアップを作成してダンプをインポートします。
ステージングにも同じプロセスを使用します。ステージングはプロダクションと同じサーバ上にあります。磨きをチェックし、すべての設定とモジュールがプロダクションサーバ上で動作していることを確認してください。準備ができたら、すべての本番ファイルとデータベースをバックアップし、ステージングからファイルとデータベースをコピーします。
Wp-config.phpはgitにはないので、プッシュしたり引っ張ったりするのはとても簡単です。ステージングから本番に移行するときは、ファイルをコピーしてgitを使用しないので、wp-config.phpが正しいことを確認する必要があります。
私は類似の question を尋ねました、そして私はこのプラグインの使い方を調べるつもりです。
私はCapistranoを使うことも考えました。ファイルパスとURLの更新だけでなく、すべてのファイルとデータベースのバックアップ/移行を処理して処理する、非常に詳細な移行スクリプトを作成します。
(特に複数のクライアントテーマで作業しているとき)私を助けてくれるものの1つは、私の開発サーバーにWordPress Multisiteインストールを使用することです。そうすれば、私は必要なだけ多くのオープンジョブを持つことができ、クライアントAがクライアントBのテーマを見ていることを心配する必要はありません。これを、私が新しいサイトを作成するたびにロードするサンプルコンテンツの包括的なパッケージと組み合わせると、素晴らしい開発システムが得られます。
私は、ライフシステムの中身にあるサーバーのインプレースハッキングから、バージョン管理システムと自動テストを使ったより構造化された開発/テスト/ステージ/ライフサイクルまでを行います。それは仕事次第です。
それに続いて、私はそれらを実行したときにWordpressプロジェクトにバグを報告します。
プラグイン開発では、既存の原則とパターンに基づいて新しいホイールを構築するために、常にホイールを作り直さないようにしています。
これが私のワークフローです:
Static
フォルダー内のDynamic
フォルダーおよびtheme/plugin
フォルダーをバージョン管理します。プロジェクトの仮想ホストを作成します。私はこの規約に従います。
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
ツールを日々使っていないので気分が悪くなります。
しかし私は私の Sprite2CSSプロジェクトのためのANTビルドツールを使っています ANTのためにPHPスクリプトをいくつか組み合わせています。
私がWindowsでもUbuntuでも、次のものを使います。
私は自分のワークフローを改善することについての提案を受け入れています。
Denver 、FileZilla、Notepad ++、Firefox Firebug、その他のインスペクタ(リンクは上にありました)、cPanel、および dbForge Studio for MySQL を使ってWindowsで作業しています - /