PHP laravelローカルdevの設定
複数のバックエンド開発者とより多くの進行中のプロジェクトを持っている会社から来ることは、開発者が複数のプロジェクトの間で共有される通常の状況です.あなたが心の現在の状態から自分自身を解除し、完全に新しいプロジェクトにフォーカスを統合する“コンテキストスイッチ”タイムペナルティが常にあるので、理想的なシナリオではないビューの開発者の視点から.これは、以前の開発者が残したコード自体を理解するだけでなく、この新しいプロジェクトで行うために残っているユーザーストーリーやタスクを読んで含まれています.
私たちは、あなたのチームメイトがどうにか新しいプロジェクトにあなたに乗る必要がある最初の部分について多くをすることができませんが、会社のどんな開発者でも容易にそれを理解することができるように、我々が我々のコードベースですることができる若干のものがあります.過去数年にわたって、我々はいくつかの開発者は、コーディングスタイルの多くを変更する場合、それは非常に他の誰かのコードで継続することを見つけることを考え出した-それはどうにか不自然と間違って感じていないあなたは同意しない?また、特にあなたが同じことを成し遂げるために複数の方法を持っているラーラヴエルのようなフレームワークで働いているとき、あなたのコードベースを構造化する問題もあります.
ここでは、過去数年間に実装されたコーディングスタイルとプロジェクト構造の違いを最小限にする方法についていくつかのアドバイスがあります.
1プロジェクトマスターテンプレート
当社では3つの開発部門に15人の開発者がいますLaravel PHP Framework ), フロントエンドWeb開発Nuxt.js Framework ) とモバイルアプリケーションの開発React Native ). すべての開発者がそれを完全に独自の任意のガイドラインと完全にゼロから毎回のプロジェクトの起動を想像してください.そこは散らかっているだろう.誰もプロジェクトの途中で飛び込むことができず、その側に座ってその人なしで動作し続けます.
その代わりに、「マスターテンプレート」を作成しましょう(一部の会社は「スケルトンプロジェクト」または「ベーステンプレート」と呼びます).したがって、我々のケースでは、我々はLaravel、Nuxtを持っています.JSは、ネイティブのマスターテンプレートとすべてのプロジェクトは、それらから派生反応.マスターテンプレートを維持する必要があります(通常、チームのリードによって)とは、特に新しいフレームワークのバージョンが出てくるまでの時間から更新されます.テンプレートは、新鮮な新しいプロジェクトを開始するために必要なすべてを含んでいます.
すべての開発者がテンプレートに慣れてしまえば、あなたのモデル、コントローラ、カスタムロジックなどを見つけることができるので、新しいプロジェクトに切り替えるのはずっと簡単です.
強制コーディングスタイル
すべての開発者は、共有プロジェクトセンスの問題であることができるコーディングスタイルを持っています.いくつかのツールを使用すると、開発者が自分のコーディングに従うルールのセットを設定することができます.チームの大部分がそれに満足するように、あなたは銀の裏を成し遂げる方法で考えなければなりません.
PHP
PHPで最も人気のあるツールの一つはPHP Coding Standards Fixer . ドキュメントのすべてを読むことができますが、この時点で開発者は手動でコードを一度に修正しなければなりません.道を下に我々はどのように自動的にそれを達成することを学ぶでしょう.
ジャバスクリプト
JSについてPrettier , JSコードフォーマットの最も人気のあるライブラリの一つ.この時点で、開発者は同時に手動でこれを行う必要があります.
両方のツールは、私はあなたが(特にPHPのCSフィクス)を見て、あなたのニーズにそれを微調整することを強く奨励ルールの独自のセットを持っています.
3 .コードの静的解析
このステップは重要なものです.我々はツールと呼ばれるツールから活用することができますLarastan これは基本的にラッパーですPHPStan Laravel固有の設定を使用します.ツールは、我々のコードの静的解析を実行し、我々は単純にキャッチしなかったが、彼らは確かにランタイムでポップアップ表示されます我々のアプリをクラッシュさせるいくつかのエラーがあるかどうかを調べる.
上記のステップのように、開発者はコードをスキャンするために手動でそれをしなければなりません.
結合と自動化
私たちが完全にステップ2を自動化することができればよいでしょう.と3 .すべてのGitの前にコミット?はい、我々はそうすることができます、そして、それはまさに我々がするつもりです.すべてのコミットの前に、我々のコード全体をスキャンし、PHPとJSの両方のルールセットに従ってコーディングスタイルを修正し、任意の隠しエラーをキャッチするコードの静的解析を実行します.そのステップのいずれかが何かをキャッチする場合、その上に、我々は、コミットを発生させるつもりはない.代わりに、エラーを修正して再度コミットを繰り返します.
まず、ユーザーが何かをコミットしたいときに毎回反応する“pre - commit”フックを設定する必要があります.最も簡単な方法はパッケージと呼ばれるパッケージを使うことですbrainmaestro/composer-git-hooks . パッケージには、“pre - commit”のようないくつかのイベントにカスタムGitフックを追加できるようにするインストール手順があります.
パッケージをあなたの
チェックスタイル 修正する何かがあるならば、それを修正してください PHPコーディングスタイルチェック 修正する何かがあるならば、それを修正してください コードの静的解析を実行する 終了 プリコミットフックが終了コード
結論
あなたが我々がどのように我々のコーディングスタイルを維持するかについて若干の洞察をしたことを望みます、そして、プロジェクト・ベースは複数のプロジェクトと開発者を横切って同じです.これはさらにgitのアクションやStyleCI また、完全にカスタムルールや規制をお客様のニーズにカスタマイズすることができます.
これを読んでくれてありがとう!あなたがこれを見つけたならば❤️, 🦄, そしてもちろん、共有し、あなたの考えをコメント!
ロイドはパートナーシップで利用可能であり、新しいプロジェクトを開く.あなたが我々についてもっと知りたいならば、クリックしてくださいhere .
また、私たちに従うことを忘れないでくださいFacebook !
私たちは、あなたのチームメイトがどうにか新しいプロジェクトにあなたに乗る必要がある最初の部分について多くをすることができませんが、会社のどんな開発者でも容易にそれを理解することができるように、我々が我々のコードベースですることができる若干のものがあります.過去数年にわたって、我々はいくつかの開発者は、コーディングスタイルの多くを変更する場合、それは非常に他の誰かのコードで継続することを見つけることを考え出した-それはどうにか不自然と間違って感じていないあなたは同意しない?また、特にあなたが同じことを成し遂げるために複数の方法を持っているラーラヴエルのようなフレームワークで働いているとき、あなたのコードベースを構造化する問題もあります.
ここでは、過去数年間に実装されたコーディングスタイルとプロジェクト構造の違いを最小限にする方法についていくつかのアドバイスがあります.
1プロジェクトマスターテンプレート
当社では3つの開発部門に15人の開発者がいますLaravel PHP Framework ), フロントエンドWeb開発Nuxt.js Framework ) とモバイルアプリケーションの開発React Native ). すべての開発者がそれを完全に独自の任意のガイドラインと完全にゼロから毎回のプロジェクトの起動を想像してください.そこは散らかっているだろう.誰もプロジェクトの途中で飛び込むことができず、その側に座ってその人なしで動作し続けます.
その代わりに、「マスターテンプレート」を作成しましょう(一部の会社は「スケルトンプロジェクト」または「ベーステンプレート」と呼びます).したがって、我々のケースでは、我々はLaravel、Nuxtを持っています.JSは、ネイティブのマスターテンプレートとすべてのプロジェクトは、それらから派生反応.マスターテンプレートを維持する必要があります(通常、チームのリードによって)とは、特に新しいフレームワークのバージョンが出てくるまでの時間から更新されます.テンプレートは、新鮮な新しいプロジェクトを開始するために必要なすべてを含んでいます.
すべての開発者がテンプレートに慣れてしまえば、あなたのモデル、コントローラ、カスタムロジックなどを見つけることができるので、新しいプロジェクトに切り替えるのはずっと簡単です.
強制コーディングスタイル
すべての開発者は、共有プロジェクトセンスの問題であることができるコーディングスタイルを持っています.いくつかのツールを使用すると、開発者が自分のコーディングに従うルールのセットを設定することができます.チームの大部分がそれに満足するように、あなたは銀の裏を成し遂げる方法で考えなければなりません.
PHP
PHPで最も人気のあるツールの一つはPHP Coding Standards Fixer . ドキュメントのすべてを読むことができますが、この時点で開発者は手動でコードを一度に修正しなければなりません.道を下に我々はどのように自動的にそれを達成することを学ぶでしょう.
ジャバスクリプト
JSについてPrettier , JSコードフォーマットの最も人気のあるライブラリの一つ.この時点で、開発者は同時に手動でこれを行う必要があります.
両方のツールは、私はあなたが(特にPHPのCSフィクス)を見て、あなたのニーズにそれを微調整することを強く奨励ルールの独自のセットを持っています.
3 .コードの静的解析
このステップは重要なものです.我々はツールと呼ばれるツールから活用することができますLarastan これは基本的にラッパーですPHPStan Laravel固有の設定を使用します.ツールは、我々のコードの静的解析を実行し、我々は単純にキャッチしなかったが、彼らは確かにランタイムでポップアップ表示されます我々のアプリをクラッシュさせるいくつかのエラーがあるかどうかを調べる.
上記のステップのように、開発者はコードをスキャンするために手動でそれをしなければなりません.
結合と自動化
私たちが完全にステップ2を自動化することができればよいでしょう.と3 .すべてのGitの前にコミット?はい、我々はそうすることができます、そして、それはまさに我々がするつもりです.すべてのコミットの前に、我々のコード全体をスキャンし、PHPとJSの両方のルールセットに従ってコーディングスタイルを修正し、任意の隠しエラーをキャッチするコードの静的解析を実行します.そのステップのいずれかが何かをキャッチする場合、その上に、我々は、コミットを発生させるつもりはない.代わりに、エラーを修正して再度コミットを繰り返します.
まず、ユーザーが何かをコミットしたいときに毎回反応する“pre - commit”フックを設定する必要があります.最も簡単な方法はパッケージと呼ばれるパッケージを使うことですbrainmaestro/composer-git-hooks . パッケージには、“pre - commit”のようないくつかのイベントにカスタムGitフックを追加できるようにするインストール手順があります.
パッケージをあなたの
composer.json
ファイルを更新する必要がありますscripts
セクションを追加します."post-install-cmd": "cghooks add --ignore-lock",
"post-update-cmd": "cghooks update"
それは、フックがそれぞれの後に更新されることを意味しますcomposer install
and composer update
イベント.ここでは、この例を簡単にするために、ステップ2のカスタムスクリプトを追加することもできます.と3 .以下のように:"check-format": "php-cs-fixer fix --dry-run",
"format": "php-cs-fixer fix",
"analyse": "phpstan analyse"
とpackage.json
JSフィクスジャ"check-format": "prettier --check resources/assets/js/**/*.js",
"format": "prettier --write resources/assets/js/**/*.js"
このスクリプトはいくつかあります.# scans the PHP code and reports for invalid coding style
composer check-format
# fixes the invalid PHP coding style
composer format
# scans the JS code and reports for invalid coding style
npm run check-format
# fixes the invalid JS coding style
npm run format
# runs static code analysis
composer analyse
そして今、私たちのスクリプトは、事前コミットイベントが発生したときに何をすべきかを指示する必要があります.上記のすべてを自動化するカスタムスクリプトを作成しましょう.まず、ターゲットスクリプトをextra
セクションcomposer.json
作曲家のgitフックパッケージのドキュメントと同じようにします."extra": {
"laravel": {
"dont-discover": []
},
"hooks": {
"pre-commit": "./pre-commit.sh"
}
},
そして今は、pre-commit.sh
スクリプト#!/bin/bash
npm run check-format
PRETTIER_EXIT_CODE=$?
if [ $PRETTIER_EXIT_CODE -ne 0 ]
then
npm run format
fi
composer check-format
CS_FIXER_EXIT_CODE=$?
if [ $CS_FIXER_EXIT_CODE -ne 0 ]
then
composer format
fi
composer analyse
PHP_STAN_EXIT_CODE=$?
if [ $PRETTIER_EXIT_CODE -ne 0 ] || [ $CS_FIXER_EXIT_CODE -ne 0 ] || [ $PHP_STAN_EXIT_CODE -ne 0 ]
then
exit -1
fi
英語でスクリプトはこうです.-1
上記の手順のいずれかがエラーを報告した場合0
それはコミットをキャンセルします、そして、ユーザーは再びそれをしなければなりません(あるいは、コードを最初に固定しなければなりません).結論
あなたが我々がどのように我々のコーディングスタイルを維持するかについて若干の洞察をしたことを望みます、そして、プロジェクト・ベースは複数のプロジェクトと開発者を横切って同じです.これはさらにgitのアクションやStyleCI また、完全にカスタムルールや規制をお客様のニーズにカスタマイズすることができます.
これを読んでくれてありがとう!あなたがこれを見つけたならば❤️, 🦄, そしてもちろん、共有し、あなたの考えをコメント!
ロイドはパートナーシップで利用可能であり、新しいプロジェクトを開く.あなたが我々についてもっと知りたいならば、クリックしてくださいhere .
また、私たちに従うことを忘れないでくださいFacebook !
Reference
この問題について(PHP laravelローカルdevの設定), 我々は、より多くの情報をここで見つけました https://dev.to/lloyds-digital/php-laravel-local-dev-setup-4l10テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol