だ。ログ。

開発とかスノボとかやきうとか。

ajaxのレスポンスヘッダを確認する

セキュリティ診断等で、自分のプログラムの妥当性を見るためにヘッダを確認する事が多々ある。
どうだっけ?ってなるので書いとく。

    success: function(data, return, ajxhead){
        var res_data = ajxhead.getAllResponseHeaders();
    }

コンソールからres_dataをウォッチすると中身が確認出来る。

LaravelでDB設定を入れても反映されない対処

環境構築をしていて、LaravelをインストールしてからDB設定を記述して

$results = DB::select('select * from test_table');

と、接続テストをすると

PDOException
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)

と表示されてしまいDBと疎通確認が取れない。
/config/database.phpには利用するDBの情報は入っているがユーザ名が homestead@localhost
となっている部分が問題。これはLaravel側が持っている.envファイルを優先して読みから出てしまっている。
サーバーから

$cd /Laravelがインストールされているディレクトリ/
$php artisan config:cache

キャッシュの再構築をしたら正しく接続出来た。
初期構築でコピペする。

Laravel5.4にて現在ルーティングされている一覧を確認する

大半は/routes/web.phpに記載されているがコマンドラインから

$ cd /laravelがインストールされているディレクトリ/
$ php artisan route:list

+--------+-----------+-------------------+---------+-------------------------------------------------+--------------+
| Domain | Method    | URI               | Name    | Action                                          | Middleware   |
+--------+-----------+-------------------+---------+-------------------------------------------------+--------------+
|        | GET|HEAD  | /                 |         | Closure                                         | web          |
|        | GET|HEAD  | api/user          |         | Closure                                         | api,auth:api |
|        | GET|HEAD  | hoge	         |         | Closure                                         | web          |
|        | GET|HEAD  | fuga	         | index   | App\Http\Controllers\FugaController@index       | web          |
|        | POST      | fuga	         | store   | App\Http\Controllers\FugaController@store       | web          |
|        | GET|HEAD  | fuga/create	 | create  | App\Http\Controllers\FugaController@create      | web          |
|        | GET|HEAD  | fuga/{}		 | show    | App\Http\Controllers\FugaController@show        | web          |
|        | PUT|PATCH | fuga/{}      	 | update  | App\Http\Controllers\FugaController@update      | web          |
|        | DELETE    | fuga/{}      	 | destroy | App\Http\Controllers\FugaController@destroy     | web          |
|        | GET|HEAD  | fuga/{}/edit 	 | edit    | App\Http\Controllers\FugaController@edit        | web          |
+--------+-----------+-------------------+---------+-------------------------------------------------+--------------+

こんな感じで返ってくる。

EC-CUBE3の値引き(某大手ペイメント対応)もする

前の記事 
rider-dice.hatenablog.com

でも触れた値引き、でもこれってEC-CUBE単体の値引きにしかなってなくって某大手のペイメント会社さんを通すと
購入金額のまま送られてしまっている。つまり自分の書いたコードだとコード足らずだったので調査。

今回調査したのは、EC-CUBE純正のクーポンプラグイン
これを使った場合、ペイメントに登録されるデータも値引きされた金額になっている。
と言う訳でソースコードを確認。

#346行目
$this->setCouponOrder($Order, $Coupon, $formCouponCd, $Customer, $discount, $app);

ここでオーダーの再受注をしている。
んで、setCouponOrderのロジックを見ると

        $total = $Order->getTotal() - $discount;
        $Order->setDiscount($Order->getDiscount() + $discount);
        $Order->setTotal($total);
        $Order->setPaymentTotal($total);
        $app['orm.em']->persist($Order);
        $app['orm.em']->flush($Order);

受注を更新する為にflushしているのと、setPaymentTotalに合計金額を入れている。
ここが抜けていた為に、DB上と表示上は金額が変更出来ているがペイメント会社さんには割引額が伝わっていなかった。
このままコピっとけば汎用性があるのでメモ。

Lavavel5.4にした際にインストールにハマる

元々EC-CUBE用に構築したCentOS6.9で、phpは5.6.3が入っていた事もあるがLaravel5.4にアップデートすると
PHPのバージョンを7にしてください。ってな事でcomposer updateすると怒られる。

とりあえず、remiが入っている状態で以下のインストールを実行

$ yum -y install --enablerepo=remi,remi-php70 php php-fpm php-devel php-pecl-xdebug php-mbstring php-mcrypt php-openssl php-mysqlnd php-xml sendmail php-gd php-pear php-xml php-mysql

基本よくばりセットをインストール。
これでcomposer updateをすると問題無くアップデート自体は出来た。
って事で、インストールしてみる

$ laravel new hogehoge

ここでエラー。どうやらzipがインストールされていない。とのエラー文言が出る。
pecl install zip をしてもエラーでインストールが出来ない。
php7に変更した際に消えてしまったと見える。

yum --enablerepo=remi,remi-php70 install php-pecl-zip

と言う訳で、pecl-zipを入れて再度インストール実行

$ laravel new hogehoge

無事hogehogeが出来た。
インストールする際には

$ yum -y install --enablerepo=remi,remi-php70 php php-fpm php-devel php-pecl-xdebug php-mbstring php-mcrypt php-openssl php-mysqlnd php-xml sendmail php-gd php-pear php-xml php-mysql php-pecl-zip

よくばりセット2としてコピペ出来るようにしておく。

CentOS6でlaravelのインストールパスを通す

laravelのリファレンスを観ていて

 laravel new hoge

とコマンドを通すも、コマンドが通ってない。と言われて怒られる。
.bash_profileにパスを通さなければならない。

$echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bash_profile
$source ~/.bash_profile

かならずパスを通して反映しておく。毎回リファレンス観てあれ?なんでだろ。と思うのでコピペ出来るようにしておく。

laravelの公開ディレクトリ

この頃触ってるlaravel

	composer create-project laravel/laravel fugafuga --prefer-dist

fugafugaと言うプロジェクトを作った後にここに公開ディレクトリを設定して、コントローラが動かないミスをしばしば起こす。
正しくは

/fugafuga/public/

publicディレクトリを公開ディレクトリにしなければならない。