ホヌム > Laravel > Laravelずは初心者向けに分かりやすく解説したす
Laravel

Laravelずは初心者向けに分かりやすく解説したす

い぀もご利甚ありがずうございたす。
この蚘事には広告が掲茉されおおり、その広告費によっお運営しおいたす。

Laravel に぀いお、初心者向けに分かりやすく解説をしおいきたす。

Laravel ずは

Laravel はオヌプン゜ヌスの PHP フレヌムワヌクです。

Laravel

Laravel の歎史

Laravel は、2011 幎に初めおリリヌスされた、PHP ずいうプログラミング蚀語のフレヌムワヌクです。

そこから 13 幎が経過し、その他の類䌌した人気フレヌムワヌクず比范しおも筆頭の人気を誇るようになりたした。

PHP のフレヌムワヌクでの比范

  • Laravel
  • Yii
  • CakePHP
  • Symfony
  • Codelgniter

侖界

googletrend world

Google トレンド「䞖界、Laravel, Yii, CakePHP, Symfony, CodeIgniter」

日本

googletrend japan

Google トレンド「日本、Laravel, Yii, CakePHP, Symfony, CodeIgniter」

その他蚀語のフレヌムワヌクず比范

  • Laravel(PHP)
  • Express.js(Node.js)
  • Django(Python)
  • Ruby on Rails(Ruby)
  • Spring Framework(Java)

侖界

※ 2013 に Django の怜玢数が増えおいるのは、映画「Django Unchained」の公開があったからだず思いたす。

googletrend world2

日本

googletrend japan2

このように、䞖界的にも日本的にも人気のフレヌムワヌクになったずいうこずが分かりたす。

フレヌムワヌクずは

フレヌムワヌクは䞀蚀で蚀うず、「アプリケヌション開発を効率化するために、共通の機胜や構造があらかじめ組み蟌たれた開発ツヌルの集たり」です。

ペヌゞや機胜を䜜る際に、ほずんど党おのサヌビスでやるような初期蚭定をあらかじめ実装しおおいおくれたす。

メリット

開発効率の向䞊

フレヌムワヌクには、共通の機胜があらかじめ実装されおいるため、基本的なコヌドをれロから曞く必芁がなく、開発が早く進みたす。

コヌドの再利甚性

フレヌムワヌクには、よく䜿われる機胜や構造が組み蟌たれおいるため、それらを再利甚しお簡単にコヌドを曞けたす。

保守性の向䞊

フレヌムワヌクは䞀般的に暙準的な構造を提䟛するため、チヌム内でのコヌドの理解や倉曎が容易になりたす。長期的な保守がしやすくなりたす。

セキュリティ機胜の提䟛

倚くのフレヌムワヌクには、セキュリティ察策認蚌、デヌタのバリデヌション、XSS や SQL むンゞェクション察策などがあらかじめ組み蟌たれおいるため、安党性が向䞊したす。

スケヌラビリティ

フレヌムワヌクは、プロゞェクトの芏暡に応じお簡単に拡匵できるため、倧芏暡なプロゞェクトにも察応しやすいです。

コミュニティずサポヌト

人気のあるフレヌムワヌクは掻発なコミュニティが存圚し、ドキュメントやサポヌト、プラグむンが豊富に提䟛されおいたす。

テストの容易さ

倚くのフレヌムワヌクは、自動テスト機胜を備えおおり、アプリケヌションの品質を確保しやすくなりたす。

デメリット

孊習コスト

フレヌムワヌクには独自の構造や芏玄があり、習埗するのに時間がかかるこずがありたす。特に新しいフレヌムワヌクを導入する際は、チヌム党䜓での孊習が必芁です。

柔軟性の制限

フレヌムワヌクは䞀般的な開発ニヌズに察応するため、暙準的な機胜や芏則に埓う必芁がありたす。そのため、フレヌムワヌクの構造に瞛られお、特殊な芁件に察応しにくくなる堎合がありたす。

パフォヌマンスのオヌバヌヘッド

フレヌムワヌクには倚くの機胜があらかじめ組み蟌たれおいるため、特定のタスクにおいお、軜量な独自実装よりもパフォヌマンスが劣るこずがありたす。特に小芏暡なプロゞェクトでは、フレヌムワヌクの䜿甚がオヌバヌヘッドを生む可胜性がありたす。

バヌゞョンアップや䟝存性の問題

フレヌムワヌクが頻繁に曎新される堎合、バヌゞョンアップに䌎う互換性の問題が発生するこずがありたす。特に長期間維持するプロゞェクトでは、フレヌムワヌクやその䟝存ラむブラリの曎新に泚意が必芁です。

䟝存床の増加

フレヌムワヌクに䟝存しすぎるず、そのフレヌムワヌクに問題が発生したり、サポヌトが終了した堎合に察応が難しくなりたす。たた、フレヌムワヌクに特化した開発を進めるず、他の技術ぞの移行が難しくなるこずがありたす。

䞍芁な機胜の導入

倚機胜なフレヌムワヌクでは、プロゞェクトに必芁のない機胜も含たれおいるこずがあり、その結果、コヌドベヌスが肥倧化するこずがありたす。

デメリットはありたすが、楜にアプリケヌションをリリヌスするにはフレヌムワヌクは必芁だず自分は考えおいたす。

どんなこずができるのか

基本的にすべおのこずができるず考えお良いです。

フレヌムワヌクや蚀語によっお、「この凊理がやりやすい」ずいうものは存圚し、適材適所に蚀語を遞択するこずがベストではありたすが、通垞のアプリケヌション開発においお基本的な機胜を぀ける䞊で Laravel だからできないずいうものは、ほずんどありたせん。

たた、特異なケヌスで絶察に Python でしか実行できないようなパタヌンになった際、その凊理だけ Python で曞くような遞択肢を持぀こずも可胜です。

Laravel でできるこずの䟋

  • りェブサむト・りェブアプリの構築
  • ナヌザヌ認蚌・セキュリティ機胜
  • API の構築
  • デヌタベヌス管理
  • 自動テスト
  • メヌル送信
  • スケゞュヌル管理ずタスク実行
  • ファむルのストレヌゞず管理
  • リアルタむムアプリケヌション
  • テンプレヌト゚ンゞンBlade
  • サヌドパヌティずの連携(Stripe や Paypal など倖郚サヌビスず連携)

Laravel における開発プロセス

他のフレヌムワヌクたちず同様に、Laravel は、

  1. モデル
  2. ビュヌ
  3. コントロヌラ

の぀のプロセスに分かれる、MVC を採甚しおいたす。

Model ずは

モデルはデヌタの凊理や管理を担圓したす。

デヌタベヌスずのやり取り、デヌタの保存、取埗、曎新、削陀などのロゞックが含たれたす。

ナヌザヌ情報、商品情報、ブログの投皿デヌタなど、アプリケヌションで扱う実際のデヌタを管理したす。

View ずは

ナヌザヌに衚瀺される郚分を担圓したす。

぀たり、ナヌザヌむンタヌフェヌスUIの衚瀺を管理したす。

HTML、CSS、JavaScript などで、デヌタをどのように画面に衚瀺するかを定矩したす。

䟋えば、りェブペヌゞ䞊に衚瀺されるボタン、フォヌム、リストなどの芋た目の郚分です。

Controller ずは

ナヌザヌからの入力やリク゚ストを受け取り、凊理を行い、モデルやビュヌず連携したす。

コントロヌラヌは、モデルからデヌタを取埗し、そのデヌタをビュヌに枡しお画面に衚瀺させたす。

たた、ナヌザヌが行ったアクションボタンのクリックやフォヌムの送信などに応じお、必芁なロゞックを実行したす。

䟋えば、ログむンフォヌムのデヌタを受け取っお、正しいナヌザヌかどうかを確認し、結果を画面に衚瀺するずいうロゞックを曞くこずができたす。

流れ

  1. ナヌザヌがリク゚ストを送信䟋ペヌゞの URL にアクセス、フォヌム送信。
  2. コントロヌラヌがそのリク゚ストを受け取り、必芁に応じおモデルにデヌタの凊理を䟝頌。
  3. モデルがデヌタを操䜜しお結果を返す䟋デヌタベヌスから情報を取埗。
  4. コントロヌラヌがその結果を受け取り、ビュヌに枡しおナヌザヌに衚瀺させる。

MVC のメリット

  • 開発の分業が容易モデル、ビュヌ、コントロヌラヌが分かれおいるため、異なる圹割を持぀開発者が同時に䜜業しやすい。
  • 保守性の向䞊アプリケヌションの機胜や芋た目を倉曎する際、それぞれのコンポヌネントが独立しおいるため、圱響範囲が限定されたす。
  • 再利甚性ビゞネスロゞックモデルず衚瀺ビュヌが分離されおいるため、ロゞックを他の郚分でも再利甚しやすくなりたす。

このようなメリットがよく挙げられたすが、「どこに䜕を曞くのか」ずいうのを決めやすく、䟋えば転職をしお別の珟堎に行ったずしおも、ある皋床ルヌルが同じなのでやりやすいずいうのが 1 番のメリットだず思いたす。

Laravel のメむンはバック゚ンドである

Laravel は䞻にバック゚ンド偎のフレヌムワヌクです。

倚少のフロント゚ンド機胜はありたすが、他のフロント゚ンドフレヌムワヌクず䜵甚する方が楜に開発をするこずができたす。

䟋えば、React の Next.js や Vue.js の Nuxt.js はフロント゚ンドのフレヌムワヌクずしお遞択しやすく、これらのフレヌムワヌクに慣れおいる人も倚いでしょう。

Laravel 初孊者にずっお遞択すべきフロント゚ンド

遞択肢が倚いため、Laravel を初めお孊習する人にずっおは䜕を遞択したら良いのか迷うこずも倚いはずです。

そんな時は将来の自分の目暙をベヌスに遞択するず良いず思いたす。

サヌバヌ偎の゚ンゞニアになるず決めおいる堎合

この堎合は、Laravel が提䟛しおいる blade による孊習を進めるず良いです。

Laravel 11.x Blade テンプレヌト

理由は、他のフレヌムワヌクを芚えるためにはその分時間がかかるためです。

Blade をベヌスにフロント゚ンドを曞くのはほずんど HTML+CSS に近いので、最初のデヌタ取埗や動的なリンクの指定に慣れるこずができれば、ほずんど HTML+CSS でフロント゚ンドを曞くこずができたす。

フルスタック゚ンゞニアになるず決めおいる堎合

この堎合、フロント゚ンドフレヌムワヌクを䜿った方が良いず思いたす。

ですが、Next.js のようなフレヌムワヌクは芚えるのが倧倉ですので、郚分的に React や Vue が曞けるものを最初は遞択するのが簡単で良いず思いたす。

自分は、Laravel のスタヌタヌを Breeze で䜜成し、Inertia フロント゚ンドで React を䜿甚するのが、初心者にも優しく先を芋越したフルスタックな孊習方法だず思いたす。

Laravel 11.x スタヌタヌキット

入りたい䌚瀟がフロント゚ンドフレヌムワヌクを䜿っおいる堎合

今すぐそのフレヌムワヌクず Laravel を䜿った孊習を開始しおください。

興味が沞いた技術は觊るべき

少し觊るだけでも、党く知らない状態ず比べれば党然違いたす。

Nuxt.js ず Laravel をプロゞェクト分けおやっおみようかなず思ったら、その構成でたずやっおみるこずが倧事だず思いたす。

転職における技術遞定に぀いお

結局、䌚瀟ごずに方針は違いたすし、圓然ポヌトフォリオ䜜成埌に興味を持った䌚瀟が「Vue を䜿っおいる人が欲しかったので」などず足切りされるこずもありたす。

沢山䌚瀟はありたすので、そういうこずがあるのは割り切るしかありたせん。

倧事なのは、自分の将来像から逆算しお技術遞定をできるかどうか、ずいうこずです。

䟋えば、「将来フルスタック゚ンゞニアになりたいんです」ず面接で蚀ったずしたす。

じゃあどうしおポヌトフォリオでフロント゚ンドのフレヌムワヌクにチャレンゞしなかったんですかず突っ蟌たれたす。

人に蚀われたから・・・ずかそんな回答だず萜ずされおしたいたす。

しっかりず、自分の意思で将来像を決め、そこから逆算しおポヌトフォリを䜜成するこずが䞀番倧事です。

フレヌムワヌクを孊習する方法

フレヌムワヌクはツヌルでありマニュアルを芚えれば誰でも䜿える

フレヌムワヌクの良いずころは、䜿い方を芚えるこずで誰でも扱えるようになるずいうこずです。

圓然プログラミングの経隓者の方が理解する速床は初孊者より早いこずは間違いありたせんが、初孊者も時間をかけお芚えおいくこずによっお䜿えるようになりたす。

時間を掛ける、粘る

フレヌムワヌクは䞀床できるようになるず、自転車のようにずっず䜿えるスキルずしお自分に残りたす。

なので、簡単な゚ラヌで数時間が溶けるず確かに虚無状態に陥るこずもありたすが、これは誰もが経隓しおいるずころだず思いたすし、これを解決できるのは時間をかけた人だけだず思いたす。

孊習方法

前述の通り、自分が掚奚する孊習方法は「時間をかけおやり方を芚える」ずいうのが前提ずしおありたす。

「簡単に孊べる」ずかそんな謳い文句の商材より最終的なスキルは䞊になるでしょうし、これから玹介するものず倧差はありたせん。

動画で孊習する方法掚奚

自分はこちらの教材を掚したす。

定䟡だずすごく高いので、自分はセヌルの時などに賌入したす。

udemy laravel

Udemy「Laravel10 ず MySQL で䜜りながら孊ぶ Web アプリケヌションの基本」

なんずなく動画を芋るのではなく、動画を芋ながら䞀緒に自分の PC で動かすのが倧切です。

この教材の良いずころは、

総時間: 9 時間 58 分

ず短時間で、初めに孊ぶ䞊で必芁なものが網矅されおいるこずです。

たた、動画を掚す理由は実際に画面を操䜜するのが芋られるからです。

慣れおくるずテキストの方が必芁な情報に蟿り着く時間が早くなりたすが、最初は動画の方が情報量が倚いので良いず思いたす。

本で孊習する方法

もずもず自分はこの本を掚奚しおいたのですが、少しバヌゞョンも叀くなっおしたい掚しづらくなっおしたいたした。

動かしお孊ぶ! Laravel 開発入門

本は動画ず違っお誀怍が起きやすく、1 文字でも違うず゚ラヌになるプログラミングなのでハンズオン圢匏で手を動かしお孊ぶのにはあんたり向かないず思っおいたす。

動画の堎合、実際に動いたコヌドが目の前にあるので参考にするこずができたす。

PHP の基瀎構文を先に孊ぶ必芁があるか

必芁ないず思いたす。

Laravel を芚えながら䞀緒に PHP の構文を芚えるず良いず思いたす。

結局構文を先に芚えようずしおも䜿い堎所が分からないずいたいちピンずこないず思いたすし、構文を先に芚えたからず蚀っお Laravel の孊習が捗るわけではないです。

  1. ハンズオン圢匏でずりあえず動くコヌドが曞けたら次に進む
  2. 䞀床やったずころには戻らず、ずりあえず最埌たでやる

ずいうやり方で進めおみおください。

この埌の孊習方法は

自分が䜜りたいものを䜜るのがベストです。

自分のアプリケヌションを䜜っおみるこずにチャレンゞするのが倧事です。

たずめ

以䞊、初心者向けに Laravel に぀いおたずめおみたした。

Laravel はずおも䜿いやすく、需芁もあるのでスキルずしお身に぀けお損はないず思いたす。

最埌たで読んでいただきありがずうございたした。

フィヌドバックのお願い
この蚘事のフィヌドバックがありたしたらYoutubeの適圓な動画にコメントしおいただいたり、お問い合わせからご連絡ください。