これは下記書籍向けサンプルアプリケーションのTinitterです。
Webアプリエンジニア養成読本 [しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ](Software Design plus)
- 掲示板プログラム
- ニックネームとテキストを投稿できる
- 投稿をページ送りで見る事ができる
単純なPHP製のウェブアプリケーションです。
masterブランチの対象PHPバージョンを7.3 に上げました。
php5系で動作をさせたい場合には、php5.6
ブランチを参照ください。
上記書籍にて一部誤りがございました、以下正誤情報をご覧ください。
お詫び申し上げます。
(勿論Gitでcloneいただいても問題ありません)
- 通常版 解説ページ(本ページ)
- 通常版をZIPでダウンロード
以下は通常版についての解説になります。 通常版以外のREADMEは各ブランチ(上のリンクやプルダウンで選択)を変更してください。
- WAF: Slim Framework
- Template Engine: Twig
- ORM: Illuminate/Eloquent
- Varidator: Respect/Validation
- Test: phpunit, faker
- PHP 7.3以上
- sqlite3 サポート
- (DBセットアップのためにsqlite3のcli)
以下の実行でMac,Linux系ならばサンプル的なセットアップが完了します。
$ make dev-setup
以後は個別に実行する際の手順です。
# プロジェクトトップディレクトリで
$ php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"
# プロジェクトトップディレクトリで
$ php composer.phar install
# サンプルコンフィグファイルをコピーして作成する
$ cp config.php.sample config.php
SQLiteを使う場合には、内容を変更する必要はありません。 Mysqlを利用する場合には、後述の設定を行ってください。
Apacheの場合、以下の設定をおこなってください
$ cp htdocs/.htaccess.sample htdocs/.htaccess
# プロジェクトトップディレクトリで
$ sqlite3 sqlite.db < schema.sqlite3.sql
データを初期化したい場合、上記を再度実行してください。
- DB名:tinitter
- ユーザー名:tinitter_user
- パスワード:tinitter_pass の場合
以下を実行してDBにテーブルを登録
$ mysql -u tinitter_user -p tinitter < schema.mysql.sql
# プロンプトがでたら、パスワードを入力
config.php
を修正し、既存の$db_settings〜
を以下のように書き換えます。
$db_settings = [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '3306',
'database' => 'tinitter',
'username' => 'tinitter_user',
'password' => 'tinitter_pass',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci'
];
上記設定をしても、テストはSQLiteで動作します。詳しくはテストの項目を参照ください。
# プロジェクトディレクトリで
$ make strt
# あるいは
# プロジェクトの`htdocs/`ディレクトリで
$ php -S 127.0.0.1:8080
http://localhost:8080/
にアクセス
プロジェクトのhtdocs/
をDocumentRootに設定してください。
DEBUG定数をtrue
/false
で切り換える。
# config.php
define('DEBUG', true);
true
時は、例外時にSlimがスタックトレースを出力します。本番ではfalse
にします。
$ make test
あるいは、test/README.md
を参照してください