問題タブ [phing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Phing による Clover カバレッジ
Phing にカバレッジ レポートをクローバー形式で出力させる方法はありますか?
phpunit に --coverage-clover があることは知っていますが、Phing からこのオプションを有効にする方法がわかりません。
<exec コマンドを手動で使用したくありません。これは Phing のポイントを無効にします。
Phing 2.4RC2 を使用しています
ありがとう。
php - [Phing を使用して] ビルド プロセスをどのように管理していますか?
Phing を使用して自動化しようとしています:
- 実行中のテスト
- 各開発者マシンで DB 移行を実行する [dbdeply を使用]
- 必要に応じて本番環境にデプロイ
プロジェクトにビルド フォルダーを追加し、すべてのビルド構成ファイルと db デルタをそのフォルダーに配置することは理にかなっていると思います。そのすべてを SVN リポジトリにコミットします。そのため、すべての開発者は、svn からチェックアウトするときに更新されたビルド ファイルを取得します。ビルドを実行して、新しい変更で DB を更新できます。
実稼働サーバー上:そこに別のビルド ファイルを追加して、svn で最新のタグ付きバージョンを取得し、CSS および JS 圧縮を実行することを計画していました。
PHPUnderControl を使用して継続的な統合を実装することも計画していたので、各ビルドの結果を追跡し、ビルドが失敗するたびに通知を受け取ることができます。
それで、これはすべて理にかなっていると思いますか、それとも他にもっと良い提案がありますか?
php - PHP がこの zip ファイルを作成しないのはなぜですか (権限の問題)
私は窓にいます
PHING を使用していくつかのファイルを圧縮しています
圧縮されたものがたくさんあります
圧縮されるファイルに特定の phing ファイルセットが含まれているものを除いて、圧縮は機能します。
デバッグすると、phing の ZIP タスクで、ZipArchive::close が false を返していることがわかります。エラー文字列は「許可が拒否されました」と表示されます。マニュアルでは、 close() が実際にファイルを書き込むと述べています。
それは一時的な結合ではありません。言い換えれば、これが最初か最後か何であろうと起こります。他のすべてのものは機能します。これに関しては、一見何の違いもありません。
ここに私のビルド ファイルがあります: http://pastebin.org/84786 (1 か月間有効)
問題は 251 行目です。その前後の zip タスクはどちらも正常に動作します。デバッガーでは、約 150 個のファイルが zip に追加されていることがわかります。デバッガーですべてのパスが正しいことを確認しました。
ビルドは Linux で問題なく動作するようです。
zip ファイルが保存されるフォルダーを右クリックすると、読み取り専用チェック ボックスが「青く表示」され、チェックされていないか、チェックされていません。チェックボックスをオンまたはオフのままにして[OK]を押してフォルダーのプロパティに戻ると、チェックボックスは再び「青」になります。どうやらこれは仕様 ( http://support.microsoft.com/kb/326549 ) によるものであり、その 1 つのファイルでのみ発生するため、これは問題のようには見えません。
もう1つの奇妙なことは、252行目に移動して、ファイルセットを変更して、たとえば、そのすぐ上の「インポーター」モジュールのファイルを指すようにすると、zipが作成されることです。ただし、同じファイルセットの 236 行目の .tar.gz は、毎回正常に動作することが証明されています。そのため、zip タスク用の特定のファイル セットでのみ発生します。ファイル セットは tar タスクで正常に動作します。実際、その下の「パッケージ」コメントの下にある、これらのファイルも参照するすべてのタスクは作成されませんが、tar.gz ファイルは作成されます。
何を与える?
また、新しい観察結果...ファイルビューを十分に速く更新すると、両方のWindowsマシンで次のようになります。myzipfile.zip.tmpが構築されているのを見ることができますが、myzipfile.zipは作成されません。
Linux では、すべてが問題なく動作していることを再確認しました。図に行きます。
php - PHPプロジェクトのデプロイ/ビルド/CIサイクルの設定
私はほとんどの場合、孤独な開発者であり、多くの大きな、主にPHPベースのプロジェクトに取り組んでいます。コードベースへの変更の処理方法を専門化して自動化し、基本的な変更を行うことなくチームでの作業への移行を可能にする継続的インテグレーションプロセスを作成したいと考えています。
私が今していることは、すべてのプロジェクトにローカルのテスト環境があるということです。プロジェクトごとにSVNを使用しています。変更はローカルでテストされ、通常はFTP経由でオンラインバージョンに転送されます。APIドキュメントはソースコードから手動で生成されます。ユニットテストは私がゆっくりと取り組んでいるものであり、それはまだ私の日常の一部ではありません。
私が想定している「ビルドサイクル」は、次のことを行います。
チェンジセットは、ローカルでテストされた後、SVNにチェックインされます。
ビルドプロセスを開始します。SVN HEADリビジョンがチェックアウトされ、必要に応じて変更され、アップロードの準備が整います。
APIドキュメントは自動的に生成されます-まだ詳細に設定していない場合は、デフォルトのテンプレートを使用して、コードベース全体をスキャンします。
新しいリビジョンはFTP経由でリモートロケーションにデプロイされます(ディレクトリの名前変更、chmodding、データベースのインポートなどを含みます)。これは私がすでに非常に好きなものですが、もちろん別の方法もあります。
事前定義された場所にある単体テストが実行されます。電子メール、RSS、または(できれば)HTML出力を使用して、それらの失敗または成功について通知されます。これらの出力を取得してWebページに入れることができます。
(オプション)事前定義された場所にあるエンドユーザーの「changelog」テキストファイルは、コミットメッセージの事前定義された部分で更新されます(「「foo」と「bar」の両方を同時にフィルタリングできるようになりましたこのメッセージは、SVNコミットメッセージと必ずしも同じではありません。SVNコミットメッセージには、おそらくはるかに多くの内部情報が含まれています。
コードメトリクスやコードスタイルチェックなどは、今のところ私の主な焦点ではありませんが、長期的には確かにそうなるでしょう。これをすぐに使えるソリューションを提供するソリューションは、非常に親切に検討されています。
を探しています
同様の状況にある、または同様の状況にあり、このソリューションの実装に成功した人々からのフィードバックと経験
特に、これを設定する方法に関する優れたステップバイステップのチュートリアルとウォークスルー
たとえば、新しいプロジェクトごとにスケルトンAPI、テストケースなどを作成することにより、可能な限り多くの自動化を提供するソリューション。
そしてまた
- 製品の推奨事項。私がこれまでに知っているのは、ビルド用のphing / antと、レポート部分用のphpUnderControlまたはHudsonです。私は見る限りそれらすべてが好きですが、もちろんそれらについての詳細な経験はありません。
私は仕事に忙殺されているので、単純な解決策に強い傾向があります。逆に、機能が足りない場合は、制限が多すぎると泣きます。:)ポイントアンドクリックソリューションも大歓迎です。また、PHPプロジェクトで機能する商用製品の推奨事項にも関心があります。
私のセットアップ
私はローカルでWindows(正確には7)で作業しており、ほとんどのクライアントプロジェクトはLAMPスタックで実行され、多くの場合、共有ホスティング(=リモートSSHなし)で実行されます。自分の環境で実行できるソリューションを探しています。このためにLinuxVMをセットアップする準備ができました。問題ありません。ホストされたソリューションは、説明されているすべての側面を提供する場合、またはプロセスの他の部分と対話するのに十分な柔軟性がある場合にのみ、私にとって興味深いものです。
報奨金 私は私が最もマイレージを与えると思う答えを受け入れています。ここには素晴らしい意見がたくさんあります。複数の答えを受け入れられたらいいのにと思います。みんな、ありがとう!
php - ping ロケールまたはリモートのどちらを使用しますか?
ping について質問があります。アプリケーションを展開するためにローカルの開発マシンで使用するか、それとも本番マシンから ssh 経由で呼び出すか? Eran Galperin ( What is your preferred PHP deployment strategy )の手順をどこで実行すればよいかわかりません。私は展開スクリプトの初心者です。だから許してください:)
マルコ
php - phing と phpunit のコードカバレッジの結果
コード カバレッジ レポートを作成するために、phing 用の build.xml ファイルを作成しました。それは使用しています
phpunit --coverage-html で行ったのと同じファイルを指しています。ただし、結果は異なります。ping を使用すると、すべてのファイルで 100% のコード カバレッジが得られますが、そうではありません。これを100%説明するphingでコードカバレッジを実行することについて、おそらく私が知らないことがあります。異なる結果を得るために何が間違っていますか?
filter - ** は Phing で何を意味しますか?
The Phing User's Guide では、** ファイル フィルターについて次の説明が使用されています。
"2 つのアスタリスク (**) は、ディレクトリ セパレーターの "境界" の上に含めることができます。"
これが実際に何を意味するのかを解読するのに苦労しています。誰かこれを英語に訳してくれませんか?
php - Phing が OSX / MAMP で動作しない
これが私がこれまでに試したことです:
インストールが実行されました。以下を実行できます。
コマンドを実行すると
Phing はリストされていません。
次のコマンドを実行できるようになりました。
助けてくれてありがとう。
php - Phingのdbdeployタスクを取得してデルタエラーで自動的にロールバックする
Phingのdbdeployタスクを使用してデータベーススキーマを管理しています。デルタファイルのクエリにエラーがない限り、これは正常に機能しています。
ただし、エラーが発生した場合、dbdeployはエラーのあるクエリまでデルタファイルを実行してから中止します。次に、変更ログテーブルのエントリを手動でロールバックする必要があるため、これはフラストレーションを引き起こします。そうしないと、dbdeployはその後の試行で移行が成功したと見なすため、再試行しても何も起こりません。
したがって、問題は、dbdeploy使用トランザクションを取得する方法はありますか、またはエラーが発生したときにphingを自動的にロールバックする他の方法を提案できますか?
注:私はPhingにそれほど精通していないため、カスタムタスクの作成が含まれる場合は、サンプルコードまたは詳細情報を含むURLを高く評価します。ありがとう
php - フリーではないソフトウェアで Phing を再配布できますか?
C または C++ で書かれていないプログラムに照らして、LGPL の条件を理解するのに苦労しています。彼らは、リンクされたライブラリと「派生物」が機能することについて話します。php プログラムをパッケージ化して販売する場合、プログラム内で展開メカニズムが phing パッケージを使用した場合 (コンテンツ全体をそのままで完全に変更せずに)、LGPL の条件に違反することになりますか?
たとえば、これが phing の「ライブラリ」をリンクしてコンパイルされた C プログラムである場合、答えはより簡単になります。これは派生物であるため、GPL の下でリリースされない限り、無料であるとは見なされず、違反でもあります。しかし、この状況は違います。私はリンクしておらず、派生物を作成していません。ファイルを移動して環境をセットアップするための展開ツールとして ping を使用しているだけです。
誰かが光を当てることができますか?ありがとうございました!
編集なるほど、私は単にライブラリの機能を使用しており、それを変更していないため、たとえば、非常に独占的で高価なソフトウェア パッケージと一緒に配布するかどうかは重要ではありません。私はそれが正しいですか?
私の場合、潜在的にプロプライエタリで有料の Web ソフトウェアを、LGPL ライセンスを含む完全で無害なライブラリにパッケージ化しています。元の形、大丈夫です。右?これは実際には間違っていると思ったからです。私は、GPL 化されたものは、変更されていないか、または他の形態のクローズド ライセンスの下では再配布できないという印象を受けました。