ホームページ > 記事 > PHPフレームワーク > laravelのデメリットは何ですか
laravel フレームワークの欠点は次のとおりです: 1. コンポーネントベースのフレームワークであり、比較的肥大化している; 2. フレームワークが大きく、yaf などの小規模なフレームワークに比べて効率が低い; 3. フレームワークが複雑である通常のフレームワークよりも使い始めるのに時間がかかり、遅くて学習コストが高くなります。
このチュートリアルの動作環境: Windows 7 システム、Laravel 6 バージョン、Dell G3 コンピューター。
laravel フレームワーク
Laravel は、シンプルでエレガントな PHP Web 開発フレームワーク (PHP Web フレームワーク) です。ヌードルのような乱雑なコードから解放され、完璧なネットワーク APP を構築するのに役立ち、コードの各行を簡潔かつ表現力豊かにすることができます。
利点
豊富なドキュメント
多数のサードパーティのオープンソース ライブラリ
完全なセキュリティ メカニズム (フォーム検証など)
ミドルウェアとルーティング フィルターとアクセス制御により、不正なリクエストを回避します
フレンドリーなエラー処理メカニズム
コンポーザー パッケージ管理ツールのサポート
PHP の比較的新しい機能とさまざまなデザイン パターンが統合されています。
欠点:
コンポーネントベースのフレームワークに基づいているため、比較的肥大化します
yaf などの小規模なフレームワークに比べてパフォーマンスが低下します
通常のフレームワークより複雑で起動が遅く、学習コストが高くなります
Laravel フレームワークを使用する利点
上記のすべてが興味深いと思われる場合は、開発時にフレームワークを使用することをお勧めします。次のアプリケーション、そして次はここにあります Laravel フレームワークが他の PHP フレームワークに比べて持つ利点をいくつか共有しましょう。これらの利点により、Laravel フレームワークは間違いなく、最高の PHP フレームワークの最有力候補の 1 つとなります。
1. すぐに使えるユーザー認証
Laravel フレームワークは、すぐに使えるユーザー認証機能を提供します。最新の Web アプリケーションではユーザー認証が必要ですが、Laravel フレームワークを使用すると、セットアップのためにほとんど何もする必要がありません。ユーザー認証を設定すると、Laravel フレームワークはユーザーモデル、登録およびログインコントローラー、対応するビューなどの重要なコンポーネントをすべて作成します。そして将来的には、アプリケーションに必要なビジネス ロジックに基づいて、これらのコンポーネントを新しく追加された機能に拡張することが非常に簡単になるでしょう。
さらに、Laravel フレームワークは、アプリケーションがさまざまなソーシャル ネットワーク (Facebook、Google Plus、Twitter など) を使用してユーザーを認証できるようにする Socialite パッケージ (拡張パッケージ) も提供します。これを機能させるには、最小限の構成のみが必要です。
2. 設定より規約 (規約によるプログラミングとも呼ばれます)
Laravel フレームワークは、「設定より規約」アプローチも採用しています。これは基本的に、さまざまなコンポーネントの命名規則に従っている場合は、構成の手間をほとんど気にする必要がないことを意味します。命名規則に従えば、Laravel フレームワーク自体が多くの低レベルの詳細を処理し、すべてが魔法のように動作し始めます。従来の PHP でプログラミングを行ってきた場合、最初はこれに圧倒されるように感じるかもしれません。しかし、一度その味を知ってしまうと、もう振り返りたくないでしょう。
3. 使いやすい電子メール機能
電子メール機能のない最新のアプリケーションを想像するのは困難です。 Laravel フレームワークを使用すると、電子メール送信機能の実装は非常に簡単です。 SMTP および Php メール機能に加えて、Laravel フレームワークは、Mailgun、Mandrill、SparkPost、Amazon SES、SendMail などのさまざまな電子メール通知サービスもサポートしています。これらのサービスを使用すると、ローカルまたはクラウドベースのサービスを介して電子メールの送信をすぐに開始できます。 Nexmo を使用して、Slack や SMS 経由で通知を送信することもできます。これらのサービスはすべて、Laravel フレームワークでそのまま使用できます。
Laravel フレームワークは電子メール テンプレートで Markdown もサポートしているため (翻訳者注: Markdown はテキストから HTML への変換ツールです)、これにより電子メールの作成作業を非常に短い時間で完了できます。
4.Artisan コマンド
私個人にとって、Artisan コマンドラインは、Laravel フレームワークが提供する最も簡潔で便利な機能です。 Artisan は、開発者がコマンド ライン自体を使用して多くのタスクを自動化するのに役立つ、Laravel フレームワークのコマンド ライン インターフェイスです。アーティザン コマンドはアプリケーション自体内で使用することも、開発者が追加のアーティザン コマンドを作成することもできます。
思いつくすべての一般的なタスクについて、それに対応するアーティザン コマンドを見つけることができます。たとえば、モデルの作成、コントローラーの作成、データベース シードの作成、データベースの移行などです。リストは無限にあります。 「簡潔」と言ったのは、コマンドを渡すだけで、残りは Laravel フレームワークが処理してくれるからです。
5.「テスト駆動開発」のテスト自動化
Laravel フレームワークには PHPUnit のサポートが付属しており、「テスト駆動開発」モデルを使用して PHP アプリケーションをテストすることが非常に簡単になります。アプリケーションの単体テストを作成し、意図したとおりに動作することを確認することが簡単になります。
6. クリーンな依存性注入
Laravel フレームワークを使い始めると、Laravel フレームワークが Ruby on Rails などから派生したものであることがすぐにわかります。 Java ではなく関数型言語から。これは、Laravel フレームワークが依存関係の挿入を処理する方法から簡単にわかります。依存関係注入の実装には複雑なパターンが必要ですが、Laravel フレームワークは逆のアプローチを採用し、グローバル ヘルパー関数を作成する簡単な方法を提供します。グローバル関数と Faade 静的プロキシの助けを借りて、必要に応じて依存関係の注入を簡単に実装できます。
7. ビジネス ロジックと表示コードの分離
Laravel は、モデル-ビュー-コントローラー (MVC) アーキテクチャ パターンに従って、ビジネス ロジックをビューから分離します。このアプローチには多くの利点があります。その利点を真に理解するには、MVC パターンとは何か、アプリケーションにそのようなアーキテクチャが必要かどうかを理解する必要があります。
8. Eloquent ORM (オブジェクト リレーショナル マッピング) 実装
Eloquent は、Laravel が提供する ORM (オブジェクト リレーショナル マッピング) 実装です。詳細については、Wikipedia のリンク (https://en.wikipedia.org/wiki/Object-relational_mapping) を参照してください。 Eloquent を使用すると、データベースからデータを非常に簡単に取得できます。また、テーブル間のリレーションシップを作成し、これらのテーブルからデータを取得することも簡単になります。 Eloquent では、テーブルへのさまざまな接続を作成することもでき、データベースとの対話を非常に簡単にする多くのヘルパー関数を提供します。 SQL クエリや関数を作成する必要があることはほとんどありません。 Eloquent ORM のおかげで、Laravel フレームワークは次のデータベースにすぐに使えるサポートを提供できます:
MySQLPostgreSQLSQLiteSQL Server あなたはその通りです。これは基本的に、Eloquent を使用している限り、上記のデータベースとの互換性については心配する必要はありません。あるデータベースから別のデータベースに切り替えることも非常に簡単です。これがアプリケーションにもたらすスケーラビリティを想像してみてください。例を挙げて説明しましょう。最初は小規模なユーザー ベースで開始されるアプリケーションがあるとします。ユーザーの数が少なく、アプリケーションは初期段階にあるため、データベースとして MySQL を使用することにします。しばらくすると、アプリケーションのユーザー数がかなりのレベルに増加し、SQL Server データベースへの切り替えが必要になる場合があります。 Eloquent を使用しているため、この切り替えは、Laravel フレームワークで特定の構成の詳細を変更するのと同じくらい簡単になりました。
9. キューとスケジューラ
アプリケーションを開発するときは、通常、時間のかかるタスクがいくつかあります。これらのタスクは、ユーザーのフローをブロックしないように、後で延期する必要があります。このタイプのタスクの好例としては、CSV ファイルを作成するユーザーのリクエストをカウントする PDF レポートの生成が挙げられます。 Laravel フレームワークのキュー サービスは、アプリケーション内でこれらのタスクを後回しにするための統合 API を提供します。
Laravel フレームワークのコマンド スケジューラについて言えば、これは面倒なスケジュールされたタスク (Cronjob) の完璧な代替品です。多くの場合、開発者は特定のタスクに対してスケジュールされたジョブを設定する必要があります。この種のタスクの好例は、すべての購読者に、購読した毎週のニュースレター (ニュースレター) を送信することです。この cron ジョブを設定するには、開発者は SSH コマンドを使用してサーバーにログインし、オペレーティング システム レベルで cron ジョブを設定する必要があります。これらの cron ジョブは GIT やその他のバージョン管理システムの管理に含めることができないため、これは時間の経過とともに問題になる可能性があります。ただし、Laravel フレームワークのコマンド スケジューラは、さまざまなタスクをスケジュールするための組み込み関数を使用したクリーンな API を提供します。この方法では、SSH コマンドを使用してサーバーのターミナルにログインする必要がなく、これらのスケジュールされたジョブはすべてコードの一部となり、バージョン管理システムの範囲に含まれます。
10. シンプルなルーティング
Laravel フレームワークがルーティングを処理する方法はシンプルで直感的です。すべての Web ルーティングを処理する単一の web.php ファイルがあります。特定のルートに共通のミドルウェアが必要な場合は、Laravel で簡単にグループ化できます。
ルーティングの最適な使用例は、ユーザーが表示する前にユーザー認証が必要なアプリケーション内の一部のページです。 Laravel フレームワークはこれらすべてのページをグループ化でき、システムにログインしているユーザーのみがこれらのページを表示できるように認証ミドルウェアによってチェックされます。 Laravel フレームワークは、モデルをルートにバインドできる簡潔なルート モデル バインディングも提供します。この助けを借りて、コントローラーにアクセスする必要さえなく、ルート自体からビューを直接返すことができます。
11. Composer は依存関係を管理します
Laravel フレームワークは Composer を使用して依存関係と自動ロードを管理します。 Composer は、Laravel 拡張パッケージのインストールを支援し、依存関係の管理を簡単にします。いつでも package.json ファイルをチェックして、アプリケーションが使用しているすべての依存関係を確認できます。 Composer では、単一の Composer コマンドを使用して依存関係を更新することもできます。
12.Blade テンプレート エンジン
Blade は、Laravel フレームワークのテンプレート エンジンです。 Blade を使用すると、ビューとビジネス ロジックを分離する際に有利なスタートを切ることができます。これにより、ビューのコードが非常にクリーンな状態に保たれます。 MVC アーキテクチャ パターンとそのパターンの Laravel 実装を明確に理解すると、Blade テンプレート エンジンの重要性がより明確に理解できるようになります。 Blade はテンプレートの継承も提供するため、最近使用したテンプレートを部分に分割し、他のビュー ファイルにそれらの部分を継承させることができます。 Blade を使用すると、ビューの論理的に小さな部分を作成し、それを含めて完全なビューを形成できます。
13. ドキュメント
これは少しグレーゾーンです。初めて Laravel フレームワークを使い始めたとき、ドキュメントを見つけるのに本当に苦労しました。それはすべて文書化されていませんでしたが、ある時点で突然、何かが魔法のように機能し始めていることに気づきました。そのときから、誰もが命名規則に従い始めました。現在、Laravel フレームワークで宣言されているすべてのクラスとメソッドをリストした API ドキュメントがあります。一度コツを掴んで、Laravel ドキュメントを有益に活用する方法を理解すれば、二度と不満を抱くことはなくなるでしょう。
14. アクティブなコミュニティ
Laravel にはアクティブなコミュニティがあります。問題が発生した場合は、検索すると、その問題に関する StackOverflow の投稿が数多く見つかるでしょう。 StackOverflow 上の活発なコミュニティに加えて、Laracast と呼ばれるディスカッション フォーラムもあります。無料でサインアップして、現在非常に活発な Laracast フォーラムおよびコミュニティに参加できます。
これらの利点は、Laravel フレームワークに興奮するのに十分だと思います。 Laravel フレームワークを完璧であると定義するのは間違いなく誇張ですが、Laravel フレームワークは間違いなく最高の PHP フレームワークの 1 つであると言えます。
関連する推奨事項: 最新の 5 つの Laravel ビデオ チュートリアル
以上がlaravelのデメリットは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。