cd /var/www/es1.on-test.co.jp/html/test/cakephp3/
sudo php /var/www/es1.on-test.co.jp/html/composer.phar require phpoffice/phpexcel
※vendorの中にできる
日: 2019年11月6日
timezone
・bootstrap.phpのdate_default_timezone_set(‘Asia/Tokyo’);
PHPでの「date(‘Y-m-d H:i:s’, time())」などが日本時間になる。
・app.phpの’timezone’ => ‘+09:00’,
MySQLでの「now()」などが日本時間になる。
※DATE_FORMAT(EventLists.enddate,”%Y/%m/%d %k:%i:%s”)などは、普通に登録されている時刻が表示される。
※UNIX_TIMESTAMP(EventLists.enddate)なんかは、timezoneの設定で、値が変化する。
(date()やtime()とか、()に何か入れないとエラーになる連中は影響を受けないみたい・・・)
cakephp3 パスワードハッシュでログインできない場合
DefaultPasswordHasher.phpのcheckで判定している。なので、ここで・・・
\Cake\Log\Log::write(‘debug’, print_r(password_hash($password, PASSWORD_BCRYPT), true));
とかして、出てきたパスワードをDBに入れてあげればいい。
cakephp3 ディレクトリ階層変更
(composer.pharの場所 www.test.co.jp直下)
sudo php composer.phar create-project –prefer-dist -s dev cakephp/app /var/www/www.test.co.jp/cake/app/mb
mb以下のファイルはすべて削除(bin~webrootのディレクトリのみの状態)
webroot内の以下のディレクトリ、ファイルを「html/m」へ移動
css
img
js
favicon.ico
以下のファイルを「html/m」へコピー
.htaccess
index.php
.htaccess修正
<IfModule mod_rewrite.c>
RewriteEngine on
# RewriteRule ^$ webroot/ [L]
# RewriteRule (.*) webroot/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [L]
</IfModule>
index.php修正
//require ‘webroot’ . DIRECTORY_SEPARATOR . ‘index.php’;
require dirname(dirname(__DIR__)) . ‘/cake/app/mb/webroot/index.php’;
config/bootstrap.php修正
//require ROOT . DS . ‘vendor’ . DS . ‘autoload.php’;
require dirname(dirname(dirname(__DIR__))) . DS . ‘vendor’ . DS . ‘autoload.php’;
config/paths.php修正
//define(‘CAKE_CORE_INCLUDE_PATH’, ROOT . DS . ‘vendor’ . DS . ‘cakephp’ . DS . ‘cakephp’);
define(‘CAKE_CORE_INCLUDE_PATH’, dirname(dirname(dirname(__DIR__))) . DS . ‘vendor’ . DS . ‘cakephp’ . DS . ‘cakephp’);
define(‘CAKE_APP’, ‘mb’);//追加
vendor/composer修正
appディレクトリのsrcの場所を指定している箇所がある。
ここの指定を修正しないと、「[Cake\Routing\Exception\MissingControllerException] Controller class」とか言われる。
composer.phar実行時の引数によって、ファイルや記載方法が違うので、composer内で「src」で検索してヒットした箇所を修正。
例1)
※こちらは、そのままにしておくと、XAMPPで接続した時、Error: [Cake\Routing\Exception\MissingControllerException] Controller class Tests could not be found. となった。
vendor/composer/autoload_psr4.php
‘App\\Test\\’ => array($baseDir . ‘/tests’),
‘App\\’ => array($baseDir . ‘/src’),
↓
‘App\\Test\\’ => array($baseDir . ‘/app/’.CAKE_APP.’/tests’),
‘App\\’ => array($baseDir . ‘/app/’.CAKE_APP.’/src’),
例2)
vendor/composer/autoload_static.php
‘App\\Test\\’ =>
array (
0 => __DIR__ . ‘/../..’ . ‘/tests’,
),
‘App\\’ =>
array (
0 => __DIR__ . ‘/../..’ . ‘/src’,
),
↓
‘App\\Test\\’ =>
array (
0 => __DIR__ . ‘/../..’ . ‘/app/’.CAKE_APP.’/tests’,
),
‘App\\’ =>
array (
0 => __DIR__ . ‘/../..’ . ‘/app/’.CAKE_APP.’/src’,
),
cakephp bakeコマンド
cd C:\xampp\htdocs\test\dev.test.co.jp\bin
cake bake model persons
(windowsではできなかった。以下はlinux)
cd /var/www/es1.on-test.co.jp/html/www.test.co.jp/cake/app/adm/bin/
./cake bake model members
(全部)
./cake bake all samples
cakephp3インストール
cd /var/www/
(dev.test.co.jpディレクトリがある状態でいいらしい)
(dev.test.co.jpディレクトリの中は空じゃないとエラーになる)
sudo curl -sS https://getcomposer.org/installer | php
sudo php composer.phar create-project –prefer-dist -s dev cakephp/app dev.test.co.jp
↑↑↑
3.2.10では、config/bootstrap.phpの110行目「setDefaultOutputTimezone」でエラーになった。
110行目、111行目をコメントアウトすると問題なく動く。
(3.2.8では、この2行は無い)
なので、3.2.8を手動でとってきて、手動で置いておいた。
CAKEPHPログ出力
$this->log($this->SystemAccount->getDataSource()->getLog(),debug);
use Cake\Log\Log;
Log::write(‘debug’, print_r(12345, true));
\Cake\Log\Log::write(‘debug’, print_r(12345, true));
・cakephp2
CakeLog::debug(print_r(12345,true));