プログラミング

CodeIgniter Ver3.主な変更点と+BootStrap

めでたくライセンスがブリティッシュコロンビア工科大学に移り、MITライセンスなりました。

ただし、Ver3から。

ちゅうことで使ってみていきなり蹴つまづいた。

従来、Controllerはクラス名は最初の一文字は大文字でなければなりませんでした。一方、ファイル名は全部小文字でした。

Ver3からはファイル名も最初の人も一文字は大文字でなくてはいけません。

Change Log(https://github.com/bcit-ci/CodeIgniter/blob/develop/user_guide_src/source/changelog.rst)で概要を見ます。

  • PHP5.1.6はサポートされません。5.2.4以上、5.4+が推奨
  • ファイルネームのルールが最初の一文字が大文字で残りは小文字にかわりました。
  • MySQLが標準のドライバーとなりました。(重要視されるようになった)
  • $_SERVER[‘CI_ENV’]に環境定数がセットされます。
  • php-errorテンプレートにバックトレースするオプション追加
  • ユーザーエージェントにAndroidを追加
  • ユーザープラットフォームにWindows 7, Window 8, Android, Blackberry, IOSとPlayStation 3を追加
  • モバイルユーザーエージェントにFennec(Firefox for mobile)を追加
  • ログをエラータイプで絞れる機能
  • 例外ハンドラーの追加
  • ?mimes.phpでpem, p10, p12,p7a, p7m, p7s, crt, crl, der, kdb, rsa, cer, sst, csr Certsのサポート追加
  • mimes.phpにpgp, gpg, zshとcdrファイルのサポート追加
  • mimes.phpに3gp, 3g2, mp4, wmv, f4v, vic ヴィデオファイルサポート追加
  • mimes.phpにm4a, aac, m4u, xspf, au, ac3, flac, ogg, wmaのオーディオファイルサポート追加
  • mimes.phpにkmzとkml(Google Earth)のサポート追加
  • mimes.phpにicsカレンダーファイルサポート追加
  • mimes.phpにrar,jar, 7zipアーカイブファイルサポート追加
  • mimies.phpのxml(‘application/xml’)とxsl(’application/xml’, ‘text/xsl’)ファイルサポート更新
  • mimes.phpのdoc, docxファイルサポート更新
  • mimes.phpのphpファイルサポート更新
  • mimes.phpのzipファイルサポート更新
  • mimes.phpのcsvファイルサポート更新
  • application/config/foreign_characters.phpにルーマニア、ギリシャ、キリル文字追加
  • SHA1ライブラリーの撤廃
  • application/config/autoload.phpの$autoload[‘core]の使用を撤廃。う?とロードさされるエントリーは$autoload[‘libararies’]のみ
  • EXT定数を撤廃
  • すべてのクラスをPHP 5スタイルにし、プロパティにvarを使うのをやめる
  • ?エラーテンプレートをapplication/views/errors/に移動し、パスを$config[‘error_views_path’]で定義
  • CLIアプリケーションのために、HTML形式でないテンプレートサポートを追加
  • application/coreにログクラスを移動
  • グローバルconfigファイルが最初にロードされて、環境ファイルがロードされる。環境configキーで上書きできる。これにより環境により変更できるもののみを許す。
  • $view_folderがカレントパスの下にない場合、アプリケーションフォルダーを探すようにした
  • BASEPATH, APPPATHとVIEWPATHは絶対パスとして定義される
  • メールのvalidation(整合性検査)をPCREではなくfilter_var()を使うように更新された
  • developmentモードの沖のすべてのエラーはレポートされ、testing,productionの時は致命的(fatal)エラーのみレポートされる。
  • ip_addressデータベースフィールドを16から45にし、IPV6をサポートできるようにした。(libraries/trackback, helpers/captcha_helpers)
  • 文書からチートシートとクイックリファレンスを削除
  • eval()やexec()などの危険な関数の使用をチェックする
  • ログファイルの拡張子を$config[‘log_file_extension’]で定義できるようにした
  • 入力の表示化機能のオン・オフを$config[‘standardize_newLines’]でできるようにした。省略値はFALSE
  • Composerによるオートロードを可能にするかどうかを$config[‘composer_autoload’}で設定できるようにした
  • libraries/uriから特殊文字をHTMLに自動変更する機能を除いた
  • クラスやファイルが出すろうメッセージを”debug”レベルから”info”レベルに変更。$config[‘log_threshold’]を2(debug)にしてもログにでなくなる

変更のあるヘルパー

  • date_helper
  • url_helper
  • html_helper
  • inflectore_helper
  • download_helper
  • form_helper
  • security_helper
  • smiley_helper
  • file_helper
  • string_helper
  • captcha_helper
  • text_helper
  • directory_helper
  • array_helper
  • language_helper
  • email_helper

ライブラリー

  • encrypt
  • sessions
  • file_uploading
  • calendar
  • cart
  • image_lib
  • form_validation
  • caching
  • email
  • pagination
  • profiling
  • migration
  • xmlrpc
  • user_agent
  • table
  • zip
  • trackback

 

追記:

sessionを使うには、autoload driversにエントリーを書きます。

ちなみにデザインが苦手なエンジニアの救世主、Bootstrap様はapplicationと同じレベルに入れればいいようだ。

MyProject/
 ├appliction/
 ├css/ ←BootStrap
 ├images/ ←なんか
 ├fontx/ ←BootStrap
 ├js/ ←BootStrap
 ├system/  
  ├index.php

Viewファイル内ではこんな感じで指定

<script src="<?php echo base_url("js/bootstrap.min.js"); ?>"></script>
<link rel="stylesheet" href="<?php echo base_url("/css/bootstrap.css"); ?>">

しかし、CSSなどをフォルダーに入れるとApacheのrewriteの設定の影響を受けます。htaccessを書き換える必要があります。

RewriteEngine On
RewriteBase /project
RewriteCond $1 !^(index\.php|robots\.txt|favicon\.ico|css|js|font|image)
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

 

BootStrapはTwitterが作ったユーザーインターフェースをラクに作るフレームワークです。

ただし、これとCodeigniterのフォームヘルパーを同時に使うとコードがぐちゃぐちゃになるので頑張りましょう。

*Ver3の最初の日本語ライブラリーは私が書きました。一晩徹夜して作ったんですが、不完全で皆さんにご迷惑をおかけしましたorz
でも、どんどんforkして直してくれて、日本語もサポートされているCode Igniterをみんなで盛り上げましょう。
Code Igniter V3になり、日本ローカルの派生のFuelはどうなるんでしょう。Xoopsと同様、お仲間内だけで盛り上がって消えていくのかな。

関連記事

  1. Code Igniter Ver.3

  2. ひとつのHTMLページを複数プログラムで構成する

  3. CodeIgniterこそを使いたい

  4. MVCモデル

  5. MySQL覚書

  6. LAMP+SLIMやCodeIgniterフレームワーク

  7. CodeIgniterでセッション管理にSQlite3を使ってみる

  8. CodeIgniterでのユーザー認証2(MY_Controller)…

記事をプリント