Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kenjis/ci4-tettei-apps
『CodeIgniter徹底入門』のサンプルアプリケーション (CodeIgniter v4.x版)
https://github.com/kenjis/ci4-tettei-apps
codeception codeigniter codeigniter4 hacktoberfest phpunit selenium twig
Last synced: 21 days ago
JSON representation
『CodeIgniter徹底入門』のサンプルアプリケーション (CodeIgniter v4.x版)
- Host: GitHub
- URL: https://github.com/kenjis/ci4-tettei-apps
- Owner: kenjis
- License: other
- Created: 2021-02-17T00:07:03.000Z (over 3 years ago)
- Default Branch: develop
- Last Pushed: 2024-02-19T08:58:38.000Z (9 months ago)
- Last Synced: 2024-10-02T08:08:54.578Z (about 1 month ago)
- Topics: codeception, codeigniter, codeigniter4, hacktoberfest, phpunit, selenium, twig
- Language: PHP
- Homepage:
- Size: 2.24 MB
- Stars: 4
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 『CodeIgniter徹底入門』のサンプルアプリケーションをCodeIgniter4にアップデート
ここは『CodeIgniter徹底入門』(翔泳社)に含まれている以下のサンプルアプリケーション(CodeIgniter 1.6.1用)を [CodeIgniter 3.xで動作するように更新したもの](https://github.com/kenjis/codeigniter-tettei-apps) を、CodeIgniter4で動作するように更新するためのプロジェクトです(作業中)。
- コンタクトフォーム(7章)
- モバイル対応簡易掲示板(8章)
- 簡易ショッピングサイト(9章)現在、CodeIgniter 4.xで動作するための更新は完了しており、リファクタリングなどを実施中です。
リファクタリング前のコードは、[v4.0.0](https://github.com/kenjis/ci4-tettei-apps/releases/tag/v4.0.0) を参照してください。
## 動作確認環境
### アプリ
- CodeIgniter 4.4.5 ([ci4-app-template](https://github.com/kenjis/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のパッケージ
- CodeIgniter 3 to 4 Upgrade Helper
- Ray.Di
- CodeIgniter4 Attribute Routes
- PHPUnit Helper## インストール方法
### ダウンロード
https://github.com/kenjis/ci4-tettei-apps/archive/develop.zip をダウンロードし解凍します。
### .envファイルの作成
```
$ 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
```## Webサーバーの起動方法
```
$ php spark serve
```## テストの実行方法
### PHPUnitによるアプリケーションテスト
```
$ composer test
```テストカバー率のレポートを生成したい場合は、以下を実行します。カバー率の集計にはXdebugが必要です。
```
$ composer coverage
```レポートは`build/coverage`フォルダに作成されます。
### Codeception/Seleniumによる受入テスト
よりFirefoxをダウンロードしインストールします。
Homebrewからselenium-server-standaloneとgeckodriverをインストールします。
~~~
$ brew install selenium-server
$ brew install geckodriver
~~~Seleniumサーバを起動します。
~~~
$ selenium-server standalone
~~~受入テストを実行します。
~~~
$ sh acceptance-test.sh
~~~#### Note
geckodriverが開けない場合は、一度Finderからgeckodriverを右クリックして開いてください。
参考: https://github.com/mozilla/geckodriver/issues/1629#issuecomment-650432816
## ライセンス
サンプルアプリケーションのライセンスは「修正BSDライセンス」です。詳細は、[LICENSE.md](LICENSE.md) をご覧ください。
## 謝辞
サンプルアプリケーションのデザインは、神野みちるさん(株式会社ステップワイズ)にしていただきました。
## 『CodeIgniter徹底入門』について
- [『CodeIgniter徹底入門』のサンプルアプリケーションをCodeIgniter 3.xにアップデート](https://github.com/kenjis/codeigniter-tettei-apps)
- [『CodeIgniter徹底入門』情報ページ](http://codeigniter.jp/tettei/)
- [『CodeIgniter徹底入門』に対するノート](https://github.com/codeigniter-jp/codeigniter-tettei-note)