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のPHPバージョンを5から7にする

ロリポップでWordPressのPHPバージョン7.1に変更後「サイトに技術的な問題が発生しています。」

WordPress.org の推奨環境 PHP7以上 MySQL5.6以上またはMaria

記事を読む

WordPress Twenty Seventeen function.php

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

WordPress の最低限の機能だけのシンプルなテンプレートが欲しかったので、作っておくことにしま

記事を読む

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

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

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

記事を読む

WordPress Warning エラー

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

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

記事を読む

WordPress PHP

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

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

記事を読む

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

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

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

記事を読む

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

WordPress 独自テーブル

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

記事を読む

Wordpress 自作フォーム

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

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

記事を読む

wordpress タイトルの変更

WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title(); WordPress

記事を読む

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

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

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

記事を読む

PHP

Message

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

WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js
WordPress エラー:Failed to load plugin: table from url https://cdn.tinymce.com/4/plugins/table/plugin.min.js

WordPress エラーの状態 WordPress 管理画面のテキ

wordpress タイトルの変更
WordPress タイトルの変更

テンプレートタグ the_title(); get_the_title

All-in-One WP Migration で サーバ移動
「All-in-One WP Migration」プラグインで 簡単に WordPress のサーバー移行する手順メモ

1.移行元サイトでのデータエクスポート 「All-in-One WP

DNSサーバーとは
ドメインとは?DNSサーバーとは?

ドメインとは? ドメインとは? ドメインとは、インターネット上のネ

javascriptで複数同じ名前のformの値を取得する
javascriptで複数同じ名前のformの値を取得するとエラー Cannot read property ‘value’ of undefined

Javascript で value の値を取得する このようなHT

→もっと見る

    • 202301
      Mon Tue Wed Thu Fri Sat Sun
      1
      2345678
      9101112131415
      16171819202122
      23242526272829
      3031
    にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ PHPへ にほんブログ村 IT技術ブログ WordPressへ
    にほんブログ村 FC2 Blog Ranking
    PAGE TOP ↑