ここは『CodeIgniter徹底入門』(翔泳社)に含まれている以下のサンプルアプリケーション(CodeIgniter 1.6.1用)を CodeIgniter 3.xで動作するように更新したもの を、CodeIgniter4で動作するように更新するためのプロジェクトです(作業中)。
- コンタクトフォーム(7章)
- モバイル対応簡易掲示板(8章)
- 簡易ショッピングサイト(9章)
現在、CodeIgniter 4.xで動作するための更新は完了しており、リファクタリングなどを実施中です。
リファクタリング前のコードは、v4.0.0 を参照してください。
- CodeIgniter 4.4.5 (ci4-app-template を使用)
- PHP 8.2.16
- Composer 2.7.1
- MySQL 8.0.34
- selenium-server 4.17.0
- geckodriver 0.34.0
- アプリケーションクラスを名前空間付きに移行
- 自動ルーティングをオフに変更
- ルーティング設定はコントローラのアトリビュートから設定ファイルを生成
- 設定ファイルを設定クラスに移行
app/Config/ConfigShop.php
- ページネーション
- 仕様変更に伴い最初のページもURIセグメント数が変わらないものに変更
- offsetベースからページ番号に移行
- ページネーションのHTMLをテンプレートに移行
App\Views\Pager\default_full
- バリデーション
- Callableの検証ルールをクラスに移行
App\Libraries\Validation\CaptchaRules
- バリデーションエラーのHTMLをテンプレートに移行
App\Views\Validation\list
App\Views\Validation\single
- Callableの検証ルールをクラスに移行
- モバイル掲示板用のフックをコントローラフィルタに移行
App\Filters\ConvertEncoding
- アプリケーション用の例外クラスを追加
- テストケースクラスを名前空間付きに移行
- 受入テスト用にacceptance環境を追加
app/Config/Boot/acceptance.php
- Composerパッケージの更新
- Twigライブラリをcodeigniter-ss-twig v4.0に更新
- PHPUnitを9.5に更新
- symfony/dom-crawlerを5.2に更新
- symfony/css-selectorを5.2に更新
- GitHub Actionsによるチェックの追加
- コーディング標準
- PHPUnit
- 静的解析
追加されたComposerのパッケージ
- CodeIgniter 3 to 4 Upgrade Helper https://github.com/kenjis/ci3-to-4-upgrade-helper
- Ray.Di https://github.com/Ray-Di/Ray.Di
- CodeIgniter4 Attribute Routes https://github.com/kenjis/ci4-attribute-routes
- PHPUnit Helper https://github.com/kenjis/phpunit-helper
https://github.com/kenjis/ci4-tettei-apps/archive/develop.zip をダウンロードし解凍します。
$ cp env .env
Composerの依存パッケージをインストールします。
$ composer install
MySQLにデータベースとユーザーを作成します。
CREATE DATABASE `codeigniter` DEFAULT CHARACTER SET utf8mb4;
CREATE USER username@localhost IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON codeigniter.* TO username@localhost;
データベースにテーブルを作成し、テストデータを挿入します。
$ php spark migrate
$ php spark db:seed ProductSeeder
$ php spark serve
$ composer test
テストカバー率のレポートを生成したい場合は、以下を実行します。カバー率の集計にはXdebugが必要です。
$ composer coverage
レポートはbuild/coverage
フォルダに作成されます。
https://www.mozilla.org/ja/firefox/new/ よりFirefoxをダウンロードしインストールします。
Homebrewからselenium-server-standaloneとgeckodriverをインストールします。
$ brew install selenium-server
$ brew install geckodriver
Seleniumサーバを起動します。
$ selenium-server standalone
受入テストを実行します。
$ sh acceptance-test.sh
geckodriverが開けない場合は、一度Finderからgeckodriverを右クリックして開いてください。
参考: mozilla/geckodriver#1629 (comment)
サンプルアプリケーションのライセンスは「修正BSDライセンス」です。詳細は、LICENSE.md をご覧ください。
サンプルアプリケーションのデザインは、神野みちるさん(株式会社ステップワイズ)にしていただきました。