数ヶ月前、当社は、ほとんどのプロジェクトに使用する企業のPHPフレームワークを選択することにしました。 その前には、Symfony、Zend Framework、Yiiという動物園がありました。 人気のあるフレームワークを確認した後、 Laravelを試すことにしました。 数日間のトレーニングの結果、簡単なアプリケーションが作成された概要が作成されましたが、詳細なチュートリアルがすでにハブに存在するため 、開発に役立つ4つのツールについてのみ書くことにしました。
Laravel IDEヘルパージェネレーター
Laravelを初めてインストールし、お気に入りのIDEを開くと、ショックが発生します(まあ、確かにショックを受けました。おそらく
もちろん、コードのファサードを完全に放棄することはできますが、そのような根本的な解決策はありません-Laravel IDE Helper Generatorです。 これは、アプリケーションで使用されるコードに基づいて、生成された静的ファサードクラスを含むヘルパーファイルを生成するパッケージです。 クラスはアプリケーションによって使用されることはありませんが、IDEの完了にのみ必要です。
設置
コンポーザー経由でインストールする
composer require barryvdh/laravel-ide-helper:1.*
app/config/app.php
のプロバイダー配列に新しいサービスプロバイダーを追加し
app/config/app.php
。
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider'
ファサード用のファイルヘルパーを生成できるようになりました
php artisan clear-compiled php artisan ide-helper:generate php artisan optimize
データベースとの接続を記述していない場合、エラー「Could not determine driver/connection for DB
がポップアップします-これは正常で、ファイルは生成されます
(それぞれのテーブルに基づいて)雄弁なモデルの説明を含むドックブロックを生成するには:
php artisan ide-helper:models
ジェネレーターは、既存のモデルクラスまたは別の_ide_helper_models.php
ファイルにドックブロックを追加するように求めます。 私はモデルに追加することを好みますが、それは好みの問題です
Laravel 4デバッグバー
Laravel Debugbarは、PHP Debug Barフレームワークに統合するパッケージです。
コードの制御とデバッグを可能にする非常に便利なツール。 発生したリクエストの数(突然
::with('smth')
を追加するのを忘れた場合
::with('smth')
)、
::with('smth')
、ログに書き込まれた内容、現在のユーザーに関する情報、ページの生成に使用されたタイプを常に把握できます。データは彼らに転送されました。 また、リダイレクトが発生した場合でも、いつでも以前のリクエストに関する情報を表示できます。
これは、開いているデバッグバーの外観です。
Debugbarは次の情報を表示できます(標準のPHP Debug Barコレクターに加えて、いくつかのカスタムコレクターが含まれています)。
-
QueryCollector
:完了したすべてのクエリとそれらにかかった時間 -
RouteCollector
:現在のルート情報 -
ViewCollector
:使用済みビュー(オプションでビューに転送されたデータを表示できますが、これはアプリケーションの速度に影響する可能性があります) -
EventsCollector
:すべてのイベント-探索する価値があり、Laravelにはさまざまなイベントがあります -
LaravelCollector
:Laravelバージョンと環境情報(デフォルトでは無効) -
SymfonyRequestCollector
:リクエストとレスポンスの情報 -
LogsCollector
:最新のログエントリを表示します(以前のクエリで作成されたものも含む)。 (デフォルトでは無効) -
FilesCollector
:リクエスト中に使用された.phpファイル(デフォルトでは無効) -
ConfigCollector
:アプリケーション構成(デフォルトでは無効) -
LogCollector
:ログMonolog。MessagesCollector
コレクターが有効になっている場合、このログにはMessageCollector
も表示されます -
PhpInfoCollector
:PHPバージョン情報 -
MessagesCollector
:ログメッセージ(PSR-3ロガーで動作) -
TimeDataCollector
:ランタイム -
MemoryCollector
:使用されているメモリの量 -
ExceptionsCollector
:例外
ところで、Laravel 4.2.2 では 、フレームワークからWhoopsが削除されました(これは開発者にとって最も美しいエラーページです)。SymfonyDisplayerを使用するようになりました。これは単にスタックトレースを表示します。 クエリパラメータなどの表示に慣れている場合は、Laravel Debugbarを使用すると、この変更を穏やかに乗り切ることができます。 もちろん、
debug
モードでのみ機能します。
設置
composer require barryvdh/laravel-debugbar:dev-master
app/config/app.php
のプロバイダー配列に新しいプロバイダーを追加し
app/config/app.php
。
'Barryvdh\Debugbar\ServiceProvider',
このパッケージのリソース(スタイル、js)を追加します
php artisan debugbar:publish
パッケージのドキュメントで、著者はリソースがバージョンによって異なる可能性があることに注意し、この行を
composer.json
追加することを推奨しています。
"post-update-cmd": [ "php artisan debugbar:publish" ],
使用されているコレクターのリストを編集するには、最初にこのパッケージの構成ファイルを追加する必要があります。
php artisan config:publish barryvdh/laravel-debugbar
そして、ファイル
app/config/packages/barryvdh/laravel-debugbar/config.php
編集します。
フェイカー
FakerはLaravelに関連付けられていないライブラリですが、Siderでの使用には非常に便利です。 Fakerは、さまざまなテストデータを生成します:文字列、数字、あらゆるサイズのテキスト。 すべての種類のユーザーデータ:名前(性別)、電話番号、メール。 住所データ:通り、国、座標など さまざまな形式の時間、ウェブサイトアドレス、IP、ブラウザユーザーエージェント、銀行カード情報、色、バーコード、さまざまなハッシュ。
別途、画像の生成について言及する価値があります。このFakerはLoremPixelジェネレーターを使用し、必要なサイズと方向の画像ファイルを指定されたフォルダーに慎重にコピーするためです。
$filename = $faker->image('image/dir', 300, 300, 'cats');
ランダムなテストデータを「修正」することもできます。つまり、Fakerが毎回同じデータを生成するように、シードを設定するだけです。
$faker = Faker\Factory::create(); $faker->seed(1234); echo $faker->name; // 'Vera Gzhel'
データの一意性とオプション性を確保できます。
for ($i=0; $i < 5; $i++) { // $values[]= $faker->unique()->randomDigit; } for ($i=0; $i < 5; $i++) { // , null $values[]= $faker->optional()->randomDigit; }
必要なロケールをコンストラクタに渡すことで、データをローカライズすることもできます
$faker = Faker\Factory::create('ru_RU'); echo $faker->name; //
そのようなインストールはありません。作曲家にロードするだけです
composer require fzaninotto/faker:1.4.*@dev
そして使用する
$faker = Faker\Factory::create('ru_RU'); echo $faker->name;
ホームステッド
Laravel 4.2で、 Homestead - Vagrant -box(仮想マシンのイメージ)が導入されました。これには、Laravelでの開発に必要なものすべてが含まれています(最終的には仮想マシンだけではありません)。 人気のあるフレームワークが公式ボクシングを提供してくれたことはとてもクールだと思います。 これが一般的な開発者向けのLinuxの普及に役立つことを願っています。 そして、Windowsを使用してデンバーなどに座ってLinuxを試してみた初心者開発者の多く(そして、浮浪者-それはまったく難しいことではありません)は、プロフェッショナルで戦闘に近い環境で開発を行います。 したがって、さらにWindowsにHomesteadをインストールすることにもっと注意を払い、世界を少し良くすることを望みます。
Homesteadは、オペレーティングシステムや同僚のオペレーティングシステム、バージョン、開発に必要なソフトウェアの可用性について考える必要をなくします。
1つのコマンドのみを使用して開発環境に新しいサイトを追加できます。また、「実」システム(後でゲストシステムと呼びます)と仮想マシンの間で、構成で指定された任意の数のフォルダーを同期します。 つまり、お気に入りのエディターを使用してオペレーティングシステムのコードの編集を続行でき、ファイルは自動的に仮想マシンと同期されます。
ホームステッドには以下が含まれます:
- Ubuntu 14.04
- PHP 5.5
- Nginx
- MySQL
- ポストグレス
- ノード(+ Bower、Grunt、Gulp)
- レディス
- Memcached
- 豆の木
- ララヴェル特使
- ファブリック+ HipChat拡張機能
設置
まず、 VagrantとVirtualBoxをインストールします。インストーラーは不要な質問をしないため、インストールは簡単です。
vagrantのインストール後、インストーラーはシステムの再起動を要求します。 再起動中にBIOSに入り、Intel Virtualization Technology(VT-x、AMD-V、正直に言うと、異なるシステムでどのように呼び出すことができるかわかりません)が有効になっているかどうかを確認し、有効になっていない場合はオンにします。
Windowsを使用している場合はコンソールを開き、Git Bashを開きます( インストールされていない場合はインストールします )。まだ必要なので、Homesteadボックスを追加してください:
vagrant box add laravel/homestead
ボックスがダウンロードされている間に、Homesteadの設定でリポジトリをクローンします。 ドキュメントでは、すべてのプロジェクトが保存されるフォルダーへのクローン作成が推奨されています(例
C:/Users/YourName/Workspace
):
git clone https://github.com/laravel/homestead.git
homestead
フォルダーに移動して
Homestead.yaml
構成ファイルを開くと、次のようになります。
--- ip: "192.168.10.10" # ip memory: 2048 # cpus: 1 # authorize: /Users/me/.ssh/id_rsa.pub # keys: - /Users/me/.ssh/id_rsa # folders: # , - map: /Users/me/Code # ( ) to: /home/vagrant/Code # sites: # , - map: homestead.app # , to: /home/vagrant/Code/Laravel/public # (!) , (index.php)
sshキーがない場合は、
ssh-keygen
(WindowsのGit Bashで利用可能)を使用して生成し
ssh-keygen
。
ssh-keygen -t rsa -C "your@email.com"
Homestead.yaml
公開鍵と秘密鍵を登録します。
ゲスト(お使いの)マシンでプロジェクトが保存される(または既に保存される)フォルダーと、仮想マシン上の対応するパスを指定します。
テストサイトフォルダーを作成します。たとえば、プロジェクトディレクトリに
test
を作成し、
test/public/index.php
ファイル
test/public/index.php
追加します。
// test/public/index.php <?php phpinfo();
Homestead.yaml
パスと目的のアドレスを書き込みます。 その結果、
Homestead.yaml
(Windows用)は次のようになります。
--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: C:\Users\YourName\.ssh\id_rsa.pub keys: - C:\Users\YourName\.ssh\id_rsa folders: - map: C:\Users\YourName\Workspace to: /home/vagrant/Workspace sites: - map: test.dev to: /home/vagrant/Workspace/test/public - map: anothersite.dev to: /home/vagrant/Workspace/anothersite/public
ゲストホストのファイルに適切な行を追加します(Windowsの場合:
C:\Windows\System32\drivers\etc\hosts
):
127.0.0.1 test.dev
このセットアップが完了したら、システムを一度セットアップする必要があることに注意してください。今後の作業では、これらの手順を繰り返す必要はありません。
homesteadディレクトリで実行することから始めます:
vagrant up
vagrantが仮想マシンを初期化して起動した後、 test.dev :8000に移動して、その動作を確認できます。
それだけです 作業が必要なのは
vagrant up
コマンドのみです。
使用する
ゲストマシンの次のポートが仮想マシンにリダイレクトされます。
SSH:2222-> 22
HTTP:8000-> 80
MySQL:33060-> 3306
Postgres:54320-> 5432
つまり、たとえば、次のようにクライアントマシンからmysqlに接続できます。
mysql -u homestead -p -P 33060 -h 127.0.0.1
postgresqlとmysqlのユーザー名とパスワードは、両方ともvagrant / secretおよびroot / secretです。
仮想マシン内からデータベースに接続する場合は、標準ポートを使用します。
sshを介して仮想マシンにログインします。
vagrant ssh
すべてのvagrant
コマンドは、homestead
ディレクトリから実行する必要があります
新しいサイトを追加するには2つの方法があります。
Homestead.yamlに新しいサイトを追加します
sites: - map: test.dev to: /home/vagrant/Workspace/test/public - map: anothersite.dev to: /home/vagrant/Workspace/anothersite/public - map: new.dev to: /home/vagrant/Workspace/new/public
そして実行:
vagrant provision
または、仮想マシンにログインしてserveコマンドを使用します
vagrant ssh serve new.dev /home/vagrant/Workspace/new/public
これらのメソッドのいずれかを追加した後、hostsファイルを更新してください:
127.0.0.1 new.dev
それだけです 素晴らしい開発を!