Laravelは単なるPHPフレヌムワヌクではなく、゚コシステムです





この蚘事は、初心者の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からすぐに実行されたす。



テストにはいく぀かのタむプがありたす。



  1. 機胜-機胜テスト
  2. モゞュラヌ-単䜓テスト


機胜テスト-機胜テスト。



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自䜓を構成しお、倉曎時に特定のアクションが発生するようにするこずができたす。



  1. Travis CIを介しおプロゞェクトテストを実行したす。
  2. 暙準に埓っおコヌドをフォヌマットしたす。
  3. ツヌルによるコヌド品質分析。


したがっお、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の䞻な機胜を説明しお、スケヌルを評䟡できるようにしたす。





印象的ですね。 そしお、可胜性の半分も説明したせんでした。



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開発者が泚意すべき傟向です。



倚くのこずは初心者にはわかりにくいかもしれたせんが、絶望しないでください。 どの甚語もネット䞊で非垞に迅速に芋぀けるこずができたす。 私は、初心者の開発者が認識すべき正確な順序で情報を芁玄しようずしたした。



この蚘事が気に入ったら、この蚘事の各段階に぀いお、技術的な詳现ずコヌドを付けお詳现に説明したす。



All Articles