项目作者: kenjis

项目描述 :
『CodeIgniter徹底入門』のサンプルアプリケーション (CodeIgniter v4.1版)
高级语言: PHP
项目地址: git://github.com/kenjis/ci4-tettei-apps.git
创建时间: 2021-02-17T00:07:03Z
项目社区:https://github.com/kenjis/ci4-tettei-apps

开源协议:Other

下载


『CodeIgniter徹底入門』のサンプルアプリケーションをCodeIgniter4にアップデート

ここは『CodeIgniter徹底入門』(翔泳社)に含まれている以下のサンプルアプリケーション(CodeIgniter 1.6.1用)を CodeIgniter 3.xで動作するように更新したもの を、CodeIgniter4で動作するように更新するためのプロジェクトです(作業中)。

  • コンタクトフォーム(7章)
  • モバイル対応簡易掲示板(8章)
  • 簡易ショッピングサイト(9章)

現在、CodeIgniter 4.xで動作するための更新は完了しており、リファクタリングなどを実施中です。

リファクタリング前のコードは、v4.0.0 を参照してください。

Screenshot: HomeScreenshot: Form
Screenshot: BBSScreenshot: Shop

動作確認環境

アプリ

  • 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

「CodeIgniter 3.xで動作するように更新したもの」からの変更点

  • アプリケーションクラスを名前空間付きに移行
  • 自動ルーティングをオフに変更
    • ルーティング設定はコントローラのアトリビュートから設定ファイルを生成
  • 設定ファイルを設定クラスに移行
    • 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
  • モバイル掲示板用のフックをコントローラフィルタに移行
    • 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のパッケージ

インストール方法

ダウンロード

https://github.com/kenjis/ci4-tettei-apps/archive/develop.zip をダウンロードし解凍します。

.envファイルの作成

  1. $ cp env .env

依存パッケージのインストール

Composerの依存パッケージをインストールします。

  1. $ composer install

データベースとユーザーの作成

MySQLにデータベースとユーザーを作成します。

  1. CREATE DATABASE `codeigniter` DEFAULT CHARACTER SET utf8mb4;
  2. CREATE USER username@localhost IDENTIFIED WITH mysql_native_password BY 'password';
  3. GRANT ALL PRIVILEGES ON codeigniter.* TO username@localhost;

データベースマイグレーションとシーディングの実行

データベースにテーブルを作成し、テストデータを挿入します。

  1. $ php spark migrate
  2. $ php spark db:seed ProductSeeder

Webサーバーの起動方法

  1. $ php spark serve

テストの実行方法

PHPUnitによるアプリケーションテスト

  1. $ composer test

テストカバー率のレポートを生成したい場合は、以下を実行します。カバー率の集計にはXdebugが必要です。

  1. $ composer coverage

レポートはbuild/coverageフォルダに作成されます。

Codeception/Seleniumによる受入テスト

https://www.mozilla.org/ja/firefox/new よりFirefoxをダウンロードしインストールします。

Homebrewからselenium-server-standaloneとgeckodriverをインストールします。

  1. $ brew install selenium-server
  2. $ brew install geckodriver

Seleniumサーバを起動します。

  1. $ selenium-server standalone

受入テストを実行します。

  1. $ sh acceptance-test.sh

Note

geckodriverが開けない場合は、一度Finderからgeckodriverを右クリックして開いてください。

参考: https://github.com/mozilla/geckodriver/issues/1629#issuecomment-650432816

ライセンス

サンプルアプリケーションのライセンスは「修正BSDライセンス」です。詳細は、LICENSE.md をご覧ください。

謝辞

サンプルアプリケーションのデザインは、神野みちるさん(株式会社ステップワイズ)にしていただきました。

『CodeIgniter徹底入門』について