PHPフレームワークについて
公開日:
:
PHP
フレームワークとは?
開発する際に頻繁に必要とされる汎用的な機能をまとめて提供している、アプリケーションの土台。
フレームワークはコーディングのルールや実装方法を統一する目的で構成されている為、次の様なメリットがある。
フレームワークのメリット
- 多くのプログラマが開発に関わり、各人のコードがバラバラになってしまうのを統一する事が出来る。
- スクリプトの複雑化などから発生するバグ発生を軽減させられるので、大規模開発のに向いている。
- コードの再利用性が高いため、効率的な開発を行える。
- セキュリティ脆弱性などのセキュリティが不安開発に制約を設けることで、セキュリティ・保守性が高まる。
フレームワークのデメリット
- フレームワークが提供する仕組みに沿った形で行う必要がでてくるので拡張が困難な場合がある。
- フレームワークが提供する仕組み、手順、規約を習得する期間が必要である。
- デファクトスタンダードがない為、開発の停止されてしまう場合がある。
PHPフレームワーク比較
それにしても、フレームワークはたくさんあり、どのフレームワークを選択するか迷う所です。
PHPフレームワーク比較:アメリカの場合
最近のアメリカでの特徴は、laravelの人気が以上に上昇している。
CodeIgniterがバージョン 3.0 においてGPLと互換性のない「Open Software License (“OSL”)」を採用した為、コミュニティの反発を買っており、英語圏ではCodeIgniterからLaravelにユーザーが流れる動きが進んでいることが見られる。(ウィキペディアより)
PHPフレームワーク比較 :日本の場合
最近の日本での特徴は、以前と変わらずCakePHP が圧倒的人気。
MVCモデルとは?
「CakePHP」などをはじめ、代表的なフレームワークは、MVCモデルで構成している。
MVCとは、内部データをユーザーが直接参照・編集する情報から分離するために以下の3つの部分に分割して記述するモデル。
- Model: アプリケーションデータ、ビジネスルール、ロジック、関数(DBなどの処理はここ)
- Controller: 入力を受け取りmodelとviewへの命令に変換する
- View: グラフや図などの任意の情報表現(Modelの状態を参照し視覚表現するもの)
日本で圧倒的人気の「CakePHP」(ケイク)
CakePHP公式サイト(英語)
CakePHP日本語ドキュメント
Ruby on Rails (Rails) の理念を受け継いでおり、開発する際のコードを簡単に、少なく記述できるように配慮されている。
他のフレームワークに比べ、日本でも多くのWebアプリケーションに導入されている為、日本語ドキュメントやチュートリアルが豊富である。
Symfonyと比べると比較的シンプル、小規模、中規模ウェブアプリケーションを中心に広く使用されている。
「Symfony」(シンフォニー)
Symfony公式サイト(英語)
Symfony日本語情報サイト
サンプルコード、豊富なドキュメントが用意されていて、改修を定期的に繰り返すような大規模な開発向いてる。CakePHPよりも、保守の容易性がある。
「Zend Framework」(ゼンド フレームワーク)
Zend Framework公式サイト(英語)
内部のライブラリの依存が少なく、拡張が行いやすいので、フレームワークというよりコンポーネント群として使用するのに便利。
CakePHPよりも構成要素が固まっていない分、自由度が高いが、コーディング規則が厳しい。「コンポーネント」と呼ばれるクラスライブラリが単独で呼び出すことができるのも特徴。
「CodeIgniter」(コードイグナイター)
CodeIgniter公式サイト(英語)
日本CodeIgniterユーザー会
シンプルさが特徴。シンプルな分、他のフレームワークと比べると機能は少ないが、規約もゆるく構成も非常にわかりやすい。
また軽量かつ高速である為、サイズが小さく、メモリやハードディスクの容量も少なくて済む。
以上の点から、比較的小規模のウェブアプリケーション開発に向いている。
「Laravel」(ララベル)
Laravel 公式サイト
laravel.jp
Github laravel
ここ1年で人気急上昇のLaravel。コードが読みやすく、書きやすいのが特徴。
Eloquent ORM・Redisサーバーの利用やクラスのオートロードなど、Laravelは先進的な機能を持っている。
LaravelはMITライセンスの下でリリースされており、そのソースコードはGitHubにホスティングされている。
関連記事
-
WordPress の PHP をちょっと見てみよう Ⅲ
前記事の続きで、wp-settings.php の91行目あたりから見ていきます。 次は、wp
-
ロリポップでWordPressのPHPバージョン7.1に変更後「サイトに技術的な問題が発生しています。」
WordPress.org の推奨環境 PHP7以上 MySQL5.6以上またはMaria
-
WordPress 自作フォーム その3(チェックボックスなど)
以前、WordPress 自作フォーム その1の記事で Wordpress で自作フォームを作ってみ
-
WordPress カレンダー カスタマイズ
WordPressでカレンダーの表示部分をいじってみようかと思います。 どうやら、カレンダー関
-
WordPress フォルダー・ファイル系の関数 is_dir や opendir や exif_imagetype で Warning エラー
Wordpress の管理画面でフォルダーの中身を読み込む関数 opendir でエラー Word
-
WordPress 自作フォーム その1(サンプルと設置)
Wordpress でプラグインを使わずにフォームをやってみます。 簡単に名前、メールアドレス、メ
-
WordPress twentyseventeen の function.php を見る – その1
WordPress の最低限の機能だけのシンプルなテンプレートが欲しかったので、作っておくことにしま
-
WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js
WordPress エラーの状態 WordPress 管理画面のテキスト入力欄で(ビジュアルタブの
-
WordPress twentyseventeen の function.php を見る – その2
前回の続きです。 次のスターターコンテンツは、今回のシンプルテンプレートには不要ですが、よくわ
-
WordPress の PHP をちょっと見てみよう Ⅰ
WordPress には、たくさんのファイルが入っています。 ここではテーマ内ではなく、トップ