PHPフレームワークについて

公開日: : PHP

MVCの典型的な相関図

フレームワークとは?

開発する際に頻繁に必要とされる汎用的な機能をまとめて提供している、アプリケーションの土台。

フレームワークはコーディングのルールや実装方法を統一する目的で構成されている為、次の様なメリットがある。

フレームワークのメリット

  • 多くのプログラマが開発に関わり、各人のコードがバラバラになってしまうのを統一する事が出来る。
  • スクリプトの複雑化などから発生するバグ発生を軽減させられるので、大規模開発のに向いている。
  • コードの再利用性が高いため、効率的な開発を行える。
  • セキュリティ脆弱性などのセキュリティが不安開発に制約を設けることで、セキュリティ・保守性が高まる。

フレームワークのデメリット

  • フレームワークが提供する仕組みに沿った形で行う必要がでてくるので拡張が困難な場合がある。
  • フレームワークが提供する仕組み、手順、規約を習得する期間が必要である。
  • デファクトスタンダードがない為、開発の停止されてしまう場合がある。

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にホスティングされている。

<参考サイト>
2013年において注目すべき PHP フレームワークは Laravel

関連記事

WordPress Twenty Seventeen function.php

WordPress twentyseventeen の function.php を見る – その2

前回の続きです。 次のスターターコンテンツは、今回のシンプルテンプレートには不要ですが、よくわ

記事を読む

Wordpress 自作フォーム 2(注意点とエラー:This is somewhat embarrassing, isn’t it? など)

WordPress 自作フォーム その2(注意点とエラー:This is somewhat embarrassing, isn’t it? など)

前回(WordPress 自作フォーム 1)のつづきです。 今回は細かいところや注意点とエラーなど

記事を読む

Wordpress 独自テーブル 商品名と料金

WordPress 独自テーブル

Wordpress で独自テーブルを作ってみようと思います。 独自テーブルのデータ 今回のデ

記事を読む

WordPress Warning エラー

WordPress フォルダー・ファイル系の関数 is_dir や opendir や exif_imagetype で Warning エラー

Wordpress の管理画面でフォルダーの中身を読み込む関数 opendir でエラー Word

記事を読む

WordPress カレンダー カスタマイズ

WordPress カレンダー カスタマイズ(add_filter版)

前回、「WordPress の PHP をちょっと見てみよう Ⅲ」でフックをやったので、カレンダーで

記事を読む

Wordpress 自作フォーム

WordPress 自作フォーム その1(サンプルと設置)

Wordpress でプラグインを使わずにフォームをやってみます。 簡単に名前、メールアドレス、メ

記事を読む

WordPress の PHP をちょっと見てみよう Ⅱ

WordPress の PHP をちょっと見てみよう Ⅱ

前記事の続きで、wp-settings.php の68行目あたりから見ていきます。 <今回のピ

記事を読む

WordPress PHP

WordPress の PHP をちょっと見てみよう Ⅰ

WordPress には、たくさんのファイルが入っています。 ここではテーマ内ではなく、トップ

記事を読む

Wordpress 自作フォーム (チェックボックスなど)

WordPress 自作フォーム その3(チェックボックスなど)

以前、WordPress 自作フォーム その1の記事で Wordpress で自作フォームを作ってみ

記事を読む

WordPress カレンダー カスタマイズ

WordPress カレンダー カスタマイズ

WordPressでカレンダーの表示部分をいじってみようかと思います。 どうやら、カレンダー関

記事を読む

PHP

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

WordPress Twenty Seventeen function.php
WordPress twentyseventeen の function.php を見る – その2

前回の続きです。 次のスターターコンテンツは、今回のシンプルテン

WordPress Twenty Seventeen function.php
WordPress twentyseventeen の function.php を見る – その1

WordPress の最低限の機能だけのシンプルなテンプレートが欲しか

WordPress Warning エラー
WordPress フォルダー・ファイル系の関数 is_dir や opendir や exif_imagetype で Warning エラー

Wordpress の管理画面でフォルダーの中身を読み込む関数 ope

Wordpress 自作フォーム (チェックボックスなど)
WordPress 自作フォーム その3(チェックボックスなど)

以前、WordPress 自作フォーム その1の記事で Wordpre

Javascript ノード の取得や挿入
Javascript ノードの取得や挿入

ノードの取得 ノードの取得(ダイレクトアクセス) document

→もっと見る

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
にほんブログ村 FC2 Blog Ranking
PAGE TOP ↑