この記事は、初心者のWeb開発者だけでなく、Laravel PHPフレームワークを調査する価値がある理由と、それが提供するエコシステムを理解したい人を対象としています。 この記事はLaravelバージョン5.4の関連時に書かれました。 2017年8月にLaravel 5.5 のリリースがリリースされ、さらに多くの機能が提供されます。内容:
Web開発入門:以前に何が起こったのか
この記事では、Laravel PHPフレームワークとは何か、このフレームワークのおかげで、初心者のWeb開発者がどのように視野を広げ、文化の開発レベルを上げることができるかについてお話したいと思います。 Webプロジェクトの作成のトピックを開き、初心者を支援してみましょう。
エンジニア、プログラマー、またはWeb開発者ですか?30年前であれば、エンジニアとプログラマーが同一人物であり、今日では、技術の進歩と技術開発のおかげで、電子機器を修理することさえできると言っても安全でした。そのための多くのプログラミング言語、専門化、指示があります。一人の人は単に物理的に十分な時間を持っていません。 ほとんどの場合、プログラマーの隣人はスマートフォンを修正できませんが、このスマートフォン用のアプリケーションを作成できます。
今日、さまざまなレベルの知識を持つ多くの開発者がいます。少なくともいくつかのプログラミング言語と開発文化に関する豊富な経験と知識を持つ専門家がいます。また、大きな野望と開発意欲を持つ初心者がいます。
PHPが開発用のプログラミング言語であると考えられていることは秘密ではありません。これには最低限の知識が必要です。 これは、エントリのしきい値が非常に低いプログラミング言語です。
文字通りだれでもそれを取り、すぐに画面に線を表示できます。 これが、プログラミング言語の経験豊富な開発者がPHP開発者を「偽の」開発者、PHPを「偽の」プログラミング言語と見なしている理由です。
しかし、PHPで本格的な製品を作成し、PHPが信頼できることを他の人に証明する方法はありますか? PHPを「軽薄な」プログラミング言語と見なしている人の1人である場合は、最後まで読むことをお勧めします。おそらく、考えが変わるでしょう。
ソフトウェア製品の開発には、常に開発言語自体の知識以上のものが必要です。 それを作成してサポートするには、開発者は他の多くの知識とスキルを必要とします。
Webプロジェクトの開発と、Webプロジェクトを正常に開始するためにWeb開発者が今日知っておくべきことについてお話しします。最も重要なことは、
Laravelは、常にWeb開発技術のピークにとどまりながら、安全で信頼できるWebプロジェクトを迅速かつ有能に作成したい人にとって理想的なソリューションです。
Webプロジェクトの作成を開始します
Webプロジェクトの作成を開始する前に、プロジェクトとそのチップの構造だけでなく、開発プロセス、そして最も重要な作業環境についても考慮する必要があります。
Laravel自体は、PHPフレームワークですが、Web開発のエコシステム全体であるため、過小評価しないでください。
Laravelフレームワークを
.zipアーカイブでダウンロードしてその機能を評価した場合、作業環境が正しく構成されておらず、知識のギャップがあります。 この記事を最後まで注意深く読んでください。
ステージ1-コード作成プロセス
Windowsを含む任意のオペレーティングシステムで作業できます。 優れた
IDE (統合開発環境)が必要です
-PhpStormをお勧めします。
Atomテキストエディターまたは
Sublime Textを使用できます。 もちろん、
Notepad ++などの通常のノートブックでコードを書くこともできますが、優れたIDEはかけがえのないものです。
また、IDEまたはテキストエディタをインストールした後、時間をかけて可能な限り多くの機能を検討することをお勧めします。 これは、将来の多くの時間を節約し、多くの日常的なタスクを自動化するのに役立ちます。
「クールな」開発者はノートにコードを書くべきだと多くの人が信じていますが、メモリから関数の名前を覚えることは一つのことであり、コードにタイプミスをしないこと、開発プロセスを簡素化およびスピードアップすることは別です。 主なタスクは、IDEのすべての機能を習得することです。
IDEに加えて、
Composerをインストールする必要があります。それを通して、Laravelをインストール(更新)し、Webプロジェクトに追加パッケージを追加(更新)します。
Composerでの作業を必ず学習してください。これは非常に重要で便利なツールです。
このリンクでLaravelのインストール手順を詳しく読んで
ください 。
さらに、コードを記述するプロセスについては説明しませんが、IDEとLaravelが既にインストールされていると仮定します。
Laravelをインストールすると、コードはすぐにベースページの表示を表示します-これは記事の次の部分に行くのに十分です。
ステージ2-コードテスト
Webプロジェクトをテストするために、ファイルを
FTP サーバーにアップロードし、ローカルの
Apache (同じ
Denwerまたは
XAMPP )をインストールする必要はありません-これは何年も前に行われたもので、多くの新参者がこれを行っています。 これは間違っており、コードのエラーからあなたを救うことはありません。 これまで、これらのタスクに適したツールがあり、多くの時間と神経を節約できます。
LaravelはHomesteadのインストールを提案します。ホームステッドは、必要なものがすべてインストールされているUbuntuオペレーティングシステムのイメージです。
ここからHomesteadのインストールと設定に慣れることができ
ます 。
イメージをインストールするには、
Vagrantと
VirtualBoxが必要です。 このイメージのおかげで、インストールする必要があるモジュールと、Ubuntuでのコードの動作が正確にわかります。 追加のソフトウェアをインストールすることもできます。
要するに、システムには、Ubuntuイメージ内で使用可能なコードを含むパブリックフォルダーがあり、コードはUbuntu内で正確に実行されます。
ブラウザーで
site.appと入力すると、Ubuntuからサイトが表示されます。 同時に、SSHを介してUbuntuにアクセスすることもできます。
初心者の場合、Homesteadのインストールと設定には時間がかかりますが、開発者としては単に必要です。
HomesteadはLinuxだけでなくWindowsにもインストールできることに注意してください。次に、Homesteadがインストールされ、Laravelの最新バージョンのサイトがブラウザで開くと仮定します。
コードはブラウザで実行されますが、実際に機能しますか?自尊心のある開発者は、テストなしでコードを記述しないでください。 テストにより、すべてが意図したとおりに機能することを確認できます。 時間をかけてテストを作成してください。 すべてのプロの開発者は、自分のコードのテストを作成する必要があります。
Laravelは、あらゆる側面からWebプロジェクトを完全にテストするためのツールを提供します。 すべてをテストできます。一時データベースの作成、HTMLフォームの完了の確認、ファイルのアップロードの確認、PHPセッションの内容やメールの送信まで確認できます。
Laravelは、プロジェクトのすべての機能の品質テストのために作成されました。
テストドキュメントは
こちらにあります 。
Laravelでは、テストは
testsフォルダーにあり、コンソールの
phpunitコマンドによって実行されるか、IDEからすぐに実行されます。
テストにはいくつかのタイプがあります。
- 機能-機能テスト
- モジュラー-単体テスト
機能テスト-機能テスト。Webプロジェクトの機能をチェックするテスト。たとえば、ユーザー登録、通知の送信、Webフォームへの入力、ファイルのダウンロード。 ブラウザに表示されているデータを正確に確認できます。 Webフォームが機能するかどうかを確認するために、Webフォームに手動で入力する必要はありません。
HTTP要求を送信するだけでなく、実際のChromiumブラウザエンジンを使用して、Laravel Duskを使用してテストすることもできます。
Laravel Duskはこれに役立ちます。
単体テストは単体テストです。別のタイプのテストは、単体テストと呼ばれます。 これらのタイプのテストは、アプリケーションのロジック、各関数、イベントのキャッチ、メッセージの送信の確認、メッセージのテキストの確認、タスクがメッセージキューに追加されているかどうか、およびコードの変更に失敗した場合に壊れる可能性のあるものを確認します。
プロジェクトの各機能には独自のテストが必要です。プロジェクトを完了すると、すべてのテストが正常に実行される必要があります。
機能を変更するときに、テストを追加できます。 これはあなたとあなたの同僚を間違いから救い、問題をより簡単に診断するのに役立ちます。
ユニットテストは、アプリケーションロジックのエラーを回避します。
TDD (テスト駆動開発)には開発手法(テストによる開発)があることに注意してください。 最初にテストを作成し、次にコードを徐々に実装します。 すべてのテストが完了すると、コードの記述が完了したと言えます。
プロジェクトのテストを作成していない場合は、新しいレベルに移行します。 テストに加えて、Webアプリケーションのパフォーマンスを分析するための他のヘルパーがあります。
Laravelは、
Laravel Debugbarのインストールを提供します。
これは、デバッグモードでサイトに表示される特別なパッケージです。 これを使用すると、さらに最適化する目的で、データベースに対するすべてのSQLクエリを追跡できます。
ステージ3-プロジェクトの組み立て
Webプロジェクトを作成し、テストに合格した後、サーバーに配置するためのプロジェクトを準備する必要があります。
Laravelは
Laravel Mixを提供してくれます。
Laravel Mixは
Webpackを使用し、
CSS、JS、Less、Saas、Stylus、PostCSSで動作します。
これは、Webpackモジュールの特別なコレクターを使用して、すべてのJSファイルとCSSファイルを一緒に収集し、最も重要なことには、これらのファイルのバージョンを作成できる素晴らしいツールです。
したがって、プロジェクトの各アセンブリでは、HTMLコードでJSファイルとCSSファイルに異なる名前を付けることができます。これにより、ファイルのコンテンツを変更する際のキャッシュの問題が解決されます。
プロジェクトのテンプレートに次のように記述します。
<link rel="stylesheet" href="{{ mix('/css/app.css') }}">
組み立て後、次のようになります。
<link href="/css/app.289df32d2d2c47df3b16.css" rel="stylesheet">
この場合、訪問者のブラウザはすぐにサイトから新しいファイルをダウンロードします。
便利じゃないですか? JSファイルでも同様です。Laravelがプログレッシブ
Vue Javascriptフレームワークでうまく機能し、このJSフレームワークに基づいてWebアプリケーションを作成するのに非常に便利であることは注目に値します。 さらに、各コンポーネントを個別のファイルに簡単に配置できます。
このリンクでは
、 Laravelを使用してVueのコンポーネントを記述する方法について読むことができます。
ステージ4-コードの展開
通常、プロジェクトをビルドした後、そのファイルをサーバーにアップロードし、データベース内のテーブル構造を更新する必要があります。
ファイルを含むフォルダーを取得し、FTPサーバーにアップロードします。
phpMyAdminに移動して、データベースに変更を加えます。FTPおよび
phpMyAdminは使用しません。変更しないと、WebプロジェクトのWebサイトにアクセスするすべてのユーザーに、データベースにファイルまたはフィールドが存在しないことに関する多くのエラーが表示されます。
もちろん、技術的な作業の完了を発表することもできます。プロジェクトの技術的な複雑さをユーザーに示すため、完全にシャットダウンする必要がありますが、誰にも喜ばれません。
Webプロジェクトを無効にすることなくコードを更新できる非常にシンプルで有能なソリューションがあり、ユーザーはエラーメッセージを受け取りません。
最初に学ぶ必要があるのは
Gitです。
Gitは、分散ファイルバージョン管理システムです。Gitを使用すると、混乱を招くことなく、ファイルの変更を追跡し、古いバージョンのファイルを返し、同じコードでチームで作業できます。
サービスを通じて
Gitを使用できます。
パブリックコードまたはプライベートコード(プライベートリポジトリの場合-有料)を作成できます。
別の無料の
BitBucketサービスを使用することもできます。これにより、無料のコードでプライベートリポジトリを作成できます。
さらに、Git自体を構成して、変更時に特定のアクションが発生するようにすることができます。
- Travis CIを介してプロジェクトテストを実行します。
- 標準に従ってコードをフォーマットします。
- ツールによるコード品質分析。
したがって、WebプロジェクトのすべてのコードはGitに保存され、常に
高品質で
実績のある ものになり
ます 。
たとえば、Laravel PHPフレームワークの公式コードに変更を加えることを申し出た場合、変更を加えると、フレームワークの動作を確認するテストで新しいコードが自動的に考慮されます。
前に、Webアプリケーションを展開するプロセスについて説明しました。 それがGitが必要な理由です。 ローカルマシンからWebアプリケーションコードをGitにアップロードすると、サーバーへのアプリケーションの展開が自動的に開始されます。
Laravel Forge-手間のかからないサーバー。 Gitからの自動展開には、
Laravel Forgeサービスが役立ちます。
Laravel Forgeを使用して、
DigitalOcean 、
Linodeで仮想サーバーを作成したり、独自のサーバーへのアクセスを指定したりできます。 この場合、Laravel PHPフレームワークが機能するために必要なすべてのソフトウェアが絶対に構成されます。
Laravel Forgeはセキュリティ更新プログラムを自動的にインストールします。 また、Forgeは
Let's Encryptから無料の
SSL証明書を簡単にインストールします。
Laravel ForgeサービスにGitリポジトリへのアクセス権を付与できます。サーバー上のコードが変更されるたびに、その最新バージョンが自動的にデプロイされます。
10台のサーバーが必要ですか? -問題ありません。LaravelForgeはロードバランサーをインストールし、10個の仮想サーバーを作成し、Gitから各サーバーにコードをコピーしてプロジェクトを実行できます。
すべてを考えますか?いいえ、
Envoyerを使用すると、サービスをまったく停止せずに新しいコードを起動できます。
私は個人的にEnvoyerを使用していませんが、Laravel Forgeパネルで小さなスクリプトを作成しました。このスクリプトは、コードがデプロイされるたびに実行され、オンザフライ置換を提供しますが、サーバー自体に古いコードのコピーをさらにいくつか保持します。
→
スクリプトリンクまとめ
快適な作業環境を作成し、IDE、Composer、Laravel PHPフレームワークをインストールし、プロジェクトコードを作成し、テストを実行し、Gitバージョン管理システムを調査し、そこにコードを送信し、必要に応じてLaravel Forgeサービスを接続し、必要に応じてLaravel Envoyerも接続し、プロジェクトの展開を機能させましたgitリポジトリのサーバー。
LaravelがWeb開発の有能な道筋に私たちを導いたと言えます。 学ぶべきことはまだたくさんありますが、すでに素晴らしい仕事をしており、他の開発者とチームで仕事を始めることができます。
Laravel PHPフレームワークの主な機能
次に、Laravel PHPフレームワーク自体の機能を見てみましょう。どのWebアプリケーションでこのPHPフレームワークを作成できるか、技術的にどの程度進歩しているか、世界中で人気がある理由を見てみましょう。
PHP5と比較して
PHP7がリリースされた後、スクリプトはより高速になり、RAMの使用量がはるかに少なくなり、
Zend OPCacheと組み合わせて驚くべき結果を示しました。 特に、Laravel ForgeサービスはZend OPCacheを調整してパフォーマンスを最大化します。
特定のPHPフレームワークのパフォーマンスに関して言えば、彼らは常にキャッシュなしでテストし、データベースまたはファイルを操作し、主に通常のPHPページを多く呼び出します。 この点で、このPHPフレームワークは本質的に他の人と違いはありませんが、スケーラビリティ、柔軟性、組み込みキャッシュメカニズムの汎用性、開発速度に関しては、Laravelがすべての柔軟性とパワーを発揮することになります。
Laravel自体は絶えず改善されており、現代のトレンドに従っています。 それを研究することによって、あなたはウェブ開発の世界に遅れることはありません。主なことはフレームワークの特定のバージョンに焦点を合わせるのではなく、それに沿って開発することです。 これを行うには、Laravelの革新を研究する必要もあります。
毎年さまざまな会議が開催されており、オンラインでも閲覧できます。
Laravelの主な機能を説明して、スケールを評価できるようにします。
- MVC (English Model View Controller)PHPフレームワークは、有名で信頼性の高いSymfonyコンポーネントに基づいています。
- フレームワークに必要なモジュールは、サービスプロバイダーの形で接続されています。 Laravel 5.5では、omposerを介してパッケージをインストールするのは簡単で、コードに何も書くことなくすぐに利用できます。
- フレームワークコードは開発者コードから分離されており、各コンポーネントは簡単に拡張可能です。
- Webプロジェクトコード、CSS、JS、ページのHTMLコードは、個別のディレクトリに分割されます。 このフレームワークでは、Bladeテンプレートエンジンを使用して、PHPコードからレイアウトを分離できます。 テンプレートエンジン自体は非常に単純なので、初心者のHTMLレイアウト設計者でも簡単にそれを打ち負かすことができます。
- 便利なルーティング、着信パラメーターの検証。
- キャッシュ、ファイルストレージの操作、さまざまなデータベースの操作。
- データベースの移行では、データベースの構造を変更し、変更をロールバックできます。
- タスクのキュー、タスクスケジューラ、コンソールはSSHで動作します。
- Eloquent ORMの巨大な機能により、 SQLインジェクションなどの攻撃から完全に保護され、複数のテーブルからデータをロード( N + 1の問題を解決)したり、データベースのデータを部分的に処理したりできます。
- Laravelコレクション -これらはPHP配列であると言えますが、多くの時間を節約する非常に高度な機能を備えています。
- ルーティングファイル、構成ファイル、テンプレートのキャッシュ。 これにより、フレームワークの作業が高速化されます。
- さまざまな方法で通知を送信します:メール、 Slackなど、自分で追加できます。
- WebSocketは、真のインタラクティブアプリケーションの作成をサポートします。
- 多言語サポート:任意の言語を簡単に追加でき、 Laravel-langパッケージにはすでに多くの翻訳が含まれています。
- モデル、コントローラー、通知の生成、ジョブキューからのタスクの実行などを可能にする職人のコマンドラインインターフェイス。
- Laravel Tinkerは、コマンドラインからプロジェクトコードを操作できる追加パッケージです。
- データベースにテストデータを入力するなど、Webプロジェクトをテストする大きな機会。
- フレームワークには、パッケージライブラリを備えた独自のサイトさえあります 。
- 全文検索が必要ですか? お願い-Laravel Scout 、 Algolia 、 Sphinx 、その他のドライバーを使用できます。
印象的ですね。 そして、可能性の半分も説明しませんでした。Laravelを使用すると、1つのコマンドで登録およびサイトへのログインのシステムを生成し、
Laravel Socialiteのおかげで
OAuth認証サービスに簡単に接続したり、
Laravel Passportを使用して独自に作成したりできます。
OAuthを知らない人にとっては、ソーシャルネットワークを介してサイトにアクセスする機会です。これはLaravelでできることのほんの一部であり、初心者のPHP開発者がPHPフレームワーク自体のコアを掘り下げずにその機能を探求すれば、Laravel開発だけでなく、特に、チームワークのスキルと、負荷の高いプロジェクトの開発の原則の理解が含まれます。
Laravel PHPフレームワークのメインサイトにモットーがあるのは理由がないわけではありません。
「美しいコードが好きですか?」 私たちもそうです。 PHPウェブマスターフレームワーク。」
結局のところ、Laravel PHPフレームワークのコードは美しく、読みやすいだけでなく、非常によく考えられており、多くの人が変更について考えます。これにより、マスターレベルでプロフェッショナルなWebアプリケーションを作成できます。
便利なリンク:
Laravel PHPフレームワークのサイト。メインのPHPフレームワークニュースとさまざまなパッケージに関するニュース。
ロシア語のLaravelとロシア 語を話すVKのLaravelのコミュニティ。https://laracasts.comというサイトを強くお勧めし
ます 。JeffreyWayのビデオチュートリアルでは、Laravelの機能を不必要な言葉なしで明確に示しており、多くの有用なことも説明しています。 2分で、人は1時間で多くの人よりもアクセスしやすくなります。
また、
Adam WathanがLaravelコレクションの可能性について詳しく語っている
「 コレクションへのリファクタリング 」という本もお勧めします。 あなたのコードがより良く変わることを保証します。
すべてのLaravel Webプロジェクトにインストールすることをお勧めします。
PS:この記事は非常に膨大で技術的な詳細はありませんでしたが、主なタスクは初心者デベロッパーに入門的な知識を与え、Laravelとは何か、どんな機会を提供するかを説明し、Laravelが単なるPHPフレームワークではなく、全体であることを示すことです絶えず進化しているエコシステム。 これはまさに、PHP開発者が注意すべき傾向です。
多くのことは初心者にはわかりにくいかもしれませんが、絶望しないでください。 どの用語もネット上で非常に迅速に見つけることができます。 私は、初心者の開発者が認識すべき正確な順序で情報を要約しようとしました。
この記事が気に入ったら、この記事の各段階について、技術的な詳細とコードを付けて詳細に説明します。