Laravelのあれこれ
PHPの代表的なフレームワークであるLaravel。弊社2NFソフトウェアでも、Laravelで構築するアプリの開発を委託されるお客様は大変多いです。そんなLaravelですが、どのような利点があり、どのような点を開発時に意識しておくべきでしょうか。今回はLaravelの基本情報から、その特徴についてご紹介いたします。
<目次>
Laravelとは?
MVCモデルを採用しているLaravelは無料のオープンソースPHPフレームワークの一つで、明確なシンタックス(文法)を持ち合わせています。
フレームワークとは、アプリ、ライブラリー、API、コンパイラに適したデザインモデルを提供する“枠組み”であり、コーディングによって構成されます。
MVCはModel-View-Controllerの略で、プログラムを3つの要素に分けるモデルです。各要素はそれぞれ独立し、各自特別な役割を果たします。
・Model:データもしくはデータベース管理システム(mysql, mssql…)へのアプローチ業務を担う。Model要素にはクラスや関数が含まれ、データベース接続、データクエリ、データの追加・削除・修正など多くの業務の処理を行う。
・View:ボタンや入力枠、メニュー、画像といったインターフェースを司り、データ表示やユーザーによるシステムへのアクションの補助をします。
・Controller:ユーザーからの処理リクエストを受け付けます。クラス及び関数で論理的な業務処理を行い、必要な情報データを取り出し、Viewクラスを通してユーザーに表示します。
現在、多くのウェブサイトがLaravelで開発されています。
Laravelの歴史
2010年~2011年ごろ、かつて.NET開発者の一人であったTaylorOtwellがPHPで開発を行う際、 Symfonyより人気な性能を持つCodeIgniterを選びましたが、早い段階からある一定の限界を感じていました。
これらの限界を打破し、同時に自らのデザインパターンを存分に発揮するため、Taylorは新しいフレームワークを作ることにしました。その基準として、シンプルでわかりやすく、サポート機能で開発者のアイディア形成を補助する、というものでした。
2011年6月、TaylorはLaravelをCodeIgniterに代わるソリューションとしてリリースしました。簡単な操作と新機能でプログラマーをサポートします。当初のバージョンの強力なEloquent ORM、確実かつシンプル、効果的なページの分類といった機能は人々の注目を集めました。
そのため、Laravelは瞬く間に市場のトップに躍り出し、開発に注力されています。
現在はMITライセンスを発行され、ソースコードはGithubに保存されており、現在(2021年9月)までにバージョン8.xまで出ています。
Laravelの機能の特徴
・Composer :アップデート、設定などをする。
・Eloquent ORM:シンプルで整った文法に操作する。
・Restful API:Laravelの関数をAPIウェブサービスに変換するサポートを行う。
・Artisan.:必要なコマンドを提供し、 アプリを開発する。
・Migrations:データベース内のフィールド作成、テーブル列の追加、テーブル間の関係構築などをサポートする。
・Authentication:ログイン、登録、パスワード忘れなどの機能を提供する。
・Unit Testing:バグのテストをサポートし、修正する
Laravelを使うべき理由とは
Laravelを使ってユーザーができること
・PHPが提供する最新性能にアプローチできる。この利点は特に名前空間、インターフェース、オーバーロード、無名関数、短い配列構文のユーザーに有効です。
・多様なリソースを参考にでき、学習が容易。Laravelのすべてのバージョンにはユーザー向けの検索資料のソースが付与されています。
・SwiftMailerライブラリー上のAPIによって、クラウドやローカルプラットフォーム上のメールサービスを統合できる。
・処理速度が速く、短時間でのウェブサイトや大規模プロジェクトの構築に対応できる。
・わかりやすいMVCの3層モデルデザインに沿っているため、使用が簡単である。
・セキュリティーが高い
・Memcached や Redis out-of-the-boxといったcache backendをサポートする。
・Arisan:コマンドラインへの統合ツール
・名づけされたルートへの連携
・Laracastsコミュニティのサポートとの統合が更にスピーディーになるため、製品開発周期の削減が可能。
しかしながら、Laravelにも欠点があります。
・各バージョンは連携しておらず、コードを無理に更新しようとすると、アプリが動かなくなったり、壊れたりする。
・Laravelはモバイルアプリにとって非常に重いため、ページの読み込み速度が落ちる。
・決済機能に対応していない。
Laravel設定のやり方
ステップ1:Laravelを設定する
やり方1:Laravel Installer
ターミナル(CMDもしくはGitBash)を開き、“composer global require “laravel/installer”
とコマンドを入力する。
Windowsの場合 “%appdata%Composervendorbin”
macOS,Linuxの場合 “~/.composer/vendor/bin”
インストールが終わったら、XAMPPのhtdocsフォルダに移動します。
コマンドウィンドウを開き(Shift +右クリック、Windowsの場合Command Window Here/Git Bash Here を選択)、“laravel new blog
”と入力します。
ブログがlaravel project フォルダの名前です。
やり方2:Composer
XAMPPのhtdocsフォルダに移動します。ここではコマンドウィンドウを開き、 “composer create-project –prefer-dist laravel/laravel blog
” と入力します。
ブログがlaravel project フォルダの名前です。
ステップ2:Laravelを使う
インストールし終えたら、WebServerを開き、laravel project フォルダ内のPublicフォルダを開いて、 コマンド“php artisan serve
”を入力する。
Console画面には通知、 ”Laravel development server started on http://localhost:8000/”が出ます。
ブラウザでhttp://localhost:8000を入力すればLaravelが使用できます。
Laravelに関するよくある質問
Q.Laravelを設定するのに、システムが満たさなければならない必須要件は?
A. Laravelをセッティングするため、以下のような必須要件を満たさなければなりません。
- PHP >= 5.5.9
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
特にWindowsを使う場合、Openserver, Wamp, Xampp, AmppsなどのWindows上にウェブサーバーを構築するソフトウェアを使用したほうがよいでしょう。
Q.Laravelはフロントエンド?バックエンド?
A. バックエンドです。
Laravelはサーバー側のPHPフレームワークです。Laravelでは、fullstackアプリ(バックエンドを必要とする性能を持つアプリ)を構築できます。例えば、ユーザーアカウント、注文書の管理などが挙げられます。
Q. LaravelはLaradockと関係がある?
A.関係あります。LaradockとDockerが組み合わさって、Laradockができます。LaradockによってLaravelプロジェクトの展開スピードが速くなります。
Laradockの詳細:
・十分なPHPの開発環境の構築
・PHPで書いたほとんどのフレームワークをカバーしている。
・多くのPHPバージョンをカバーし、簡単にバージョン変更できる。
・通常のデータベースエンジンをサポートする。
・Redis, Memcached, AerospikeのようなCache Engines用のアプリケーションをもたらす。
・Composer, Node, Gulp, PhpMyAdmin, ElasticSearch, Vimなど多くのツールを提供する。
Q. Laravelはどのようにセキュリティー対策している?
A.
・ORMがPDO を使い、SQL インジェクションを防ぐ
・フィールドトークンを使ってCSRF攻撃を防ぐ
・デフォルトビューにだされた変数はLaravelがエスケープ処理するのでXSS攻撃を防ぐ
Laravelは世界で最も人気のフレームワークで、2019年には世界1位のシェア率を誇っています。人気の最大の理由は、ユーザー目線の“使いやすさ”でしょう。弊社2NFでもLaravelを使用したアプリ開発の委託が大変多くなっております。PHP言語での開発を得意とする人材も豊富ですので、Laravel(PHP)でアプリを開発したい、どんなフロントエンド、バックエンドを使えばいいのか相談したい、という方もお気軽にお問い合わせください。