だ。ログ。

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

PHP

はじめてのLambda

AWSのサーバーのアラートをChatworkに飛ばしたい ってのが前提で、あまり手付かずだったLambdaに着手。まず手始めに https://qiita.com/don_hanabi/items/3bd729bf0458d10b8d5e qiita.com 上記のサンプルコードをそのままコピペする。 利用するランタイムはN…

カスタム構造のWordpressの移植の注意点

vagrantで毎回テスト用の環境を整えてまっさらなCentOSを入れている事もあるが wordpressの移植を頼まれ、ある程度はQiitaを見ながらできたのだが、一点だけ上手くいかない部分がある。それはカスタム構造になっているパーマリンク設定http://hogehoge.local…

誤ったインタプリタです

自動実行用のスクリプトをWindowsで書きサーバーにアップし実行した際に出たエラー > /user/bin/php^M:誤ったインタプリタですこんな表示が出た。 何かなと調査すると、どうやらWindowsファイルの改行コードをLinuxが文字列として判断してしまう。 $ cat -e…

googlemap apiのSSL利用で怒られた

googlemapを利用したサービスで相当昔から有る骨董品を動かさねばならなくなり 下手にサーバーを構築する時間もなかったのでローカルに構築した際に出たエラーrequests to this api must be over ssl何かって言うとSSL対応してないって事が問題でhttpsでリク…

Laravel5.4のセッションの保持時間の変更

ログインに関連する話で、Laravelで発行したSESSIONの生存時間を変更する。ってな作業が来る。/config/session.php # 32行目あたり 'lifetime' => 60, 分単位でもっているので値を変更する。 ちなみに 'expire_on_close' => false, この設定値は文言通り、ブ…

Hangouts ChatにPHPでメッセージを投稿するのが簡単だった

結局の所、メールだとメーリングリストを作って在職中の人を入れて退職者を出してってのがすごく面倒。 誰に何を送ったか。という事が受動的で、その管理者がいなくなると誰も管理できなくなる。EC-CUBEに限った事ではないが、管理系ツールを作る時に「メー…

Laravelのログ出力

ログレベルの設計は必要にはなるが、何をどうしたか。と言う事は必須。 Laravelの場合既存でエラー出力用のメソッドが用意されている。 ログファイルは /laravel公開ディレクトリ/storage/logs/を想定。 Log::debug() Log::info() Log::notice() Log::warnin…

PHPのfunctionの返り値を複数もたせる

パーツとして切り出したは良いけど、変数が複数存在しその複数個を返り値としたい。ってのがこの頃多い。 こう作ってしまった事に自分の問題もあるがとりあえず。funciton側 function mofumofu(){ $hoge = array("1","2"); $fuga = array("3","4"); return a…

PHPからSESを利用してメールを飛ばしてみる

いつかはやろうやろうと思っていたのだが、結局機会がなかったSESでのメール送信。 AWS-SDKまでインストールした状態である事が前提だが、忘備録。1. サーバーにSES用のアクセスキーを設定する $ aws configure AWS Access Key ID [None]: accesskey AWS Sec…

PHPを利用した入力チェックのアンチョコ カタカナ

この頃はjQueryでの入力チェックばかり書いていて、POSTした後にエラーが表示されるタイプのPHP側でのチェックがめっきり減った。 たまに書くとんーどうだっけ。。となるのでコピペ出来るようにメモ。 if(preg_match("/^[ァ-ヶヲ-゚ー \t\r\n]+$/u",$postdata)…

さくらインターネットのphp.cgiの取扱

さくらのレンタルサーバーを使うとphpを利用する際に、php.cgiを.htaccessに Action myphp-script /php.cgi AddHandler myphp-script .php .html と言うスクリプトがどこにあるかと言う事を明記しなければならない。 このphp.cgiにちょっと癖があって、これ…

Doctrineで発行したSQLを表示させる

どうしてもEC-CUBEを使っていると避けられないDoctrine、使えれば便利。と言う事だが旧型人間なのでクエリが確認出来ない事にもどかしさを感じる。 結局の所、SQL式が正しいかの評価がし辛い所は難点。憎きqbからSQLを取り出す為のコード print_r($qb->getQu…

EC-CUBE3のテンプレートで税抜き価格を表示する

商品詳細ページに登録されている価格が、運用によっては税込税抜ってまちまちなってしまっている。 先にその辺を取り決めておけば良いのだが、後々カスタマイズを入れると変更したいってなる事が多い。と言う訳で、基本は税込になっているテンプレートを税抜…

CUBE3の配列に入った変数の存在確認

isset, isnull、この辺の変数が使えれば本当は楽だけど、Twigの仕様から気の利いたコードが見つからない。 今回自分がハマったのは、管理画面 > 受注検索一覧ページのOrderの変数内の顧客IDの存在有無。 要は以下 {% for Order in pagination %} <tr id="result_list_main__item--{{ Order.id }}"> <td id="result_list_main__id_check--{{ Order.id }}" class="text-center"></td></tr>

EC-CUBE3の既存パーツ 購入の際の数量のサイズ調整

どうしても独自のデザインを当て込んだ際に、既存で提供されているパーツはそのまま残しておりデザインした物と大きさの統一感が揃わない。と言う事がある。 ただ、このパーツ自体はそのまま残してなんとか最小限の修正に抑えたい。と言う事も多々要望として…

DoctrineQueryBuilderのLimitを設定する

EC-CUBE3で利用されているDoctrine、QueryBuilderを使ったソースコードの簡素化ってのは慣れると便利だが 旧来のおっさんシステム屋からするとまだるっこしい。特にECサイト系の制作だと上限個数とかにこだわるクライアントさんが多い印象。ってな訳で、Quer…

EC-CUBE3のパスワードリマインダの脆弱性のとりあえずの回避を行う

blog.tokumaru.org徳丸浩先生が古い記事で上げていたパスワードリマインダがダメな理由。と言う記事を見てそう言えばEC-CUBEもリマインダ自体はメールアドレスを入力して、そのメールアドレスにリマインダメールを発射する仕組みになっている事に気付く。 総…

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

環境構築をしていて、LaravelをインストールしてからDB設定を記述して $results = DB::select('select * from test_table'); と、接続テストをすると PDOException SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password:…

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

大半は/routes/web.phpに記載されているがコマンドラインから $ cd /laravelがインストールされているディレクトリ/ $ php artisan route:list +--------+-----------+-------------------+---------+-------------------------------------------------+---…

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

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

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

元々EC-CUBE用に構築したCentOS6.9で、phpは5.6.3が入っていた事もあるがLaravel5.4にアップデートすると PHPのバージョンを7にしてください。ってな事でcomposer updateすると怒られる。とりあえず、remiが入っている状態で以下のインストールを実行 $ yum …

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

laravelのリファレンスを観ていて laravel new hoge とコマンドを通すも、コマンドが通ってない。と言われて怒られる。 .bash_profileにパスを通さなければならない。 $echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.bash_profile $source ~…

laravelの公開ディレクトリ

この頃触ってるlaravel composer create-project laravel/laravel fugafuga --prefer-dist fugafugaと言うプロジェクトを作った後にここに公開ディレクトリを設定して、コントローラが動かないミスをしばしば起こす。 正しくは /fugafuga/public/ publicディ…

EC-CUBE3で自作のSQLクエリを発行する

基礎的な部分ではあるが、EC-CUBE3はフレームワークで作らられている為、どうしてもちょっとした変更が難しい。 特にSQLクエリ部分は色々な部分に根をはってしまっている為、どうしてもSQLは単発で動かしたいと言う事が多い。 SQLの知識さえあれば、ある程度…

EC-CUBE3のテンプレート内のループ数を取得する

普段のphpだと for($i=0;$i<=$loop;$i++){ echo $i; } で済むのだが、EC-CUBEはPHPコードをテンプレートに書くと基本NG。 じゃあどうやってループ数を取得するか。 {% for Product in pagination %} {{ loop.index }} {% endfor %} あらかじめ予約語があるの…

EC-CUBE3のfaviconを変える

/src/Eccube/Resource/template/default/default_frame.twig を変えられない事もあると思うので。 ##場所 /html/template/default/img/common/favicon.ico これを変更する。 ただし、管理画面のfaviconは別途であり ##場所 /template/admin/assets/img/favic…

EC-CUBE3のページ管理のdescriptionの文字数を変更する

EC-CUBEの管理画面からページ管理を行った際にSEO対策で行うdescriptionの文字上限数が少ないと結構指摘される。 あまり長すぎてもSEO上良い影響はないとと思うが流石にデフォルトの50文字だと短すぎる。 ここはPOSTした際にコンフィグファイルを観るので、…

WAFを経由したらIPが複数に。

セキュリティの観点と導入が簡易に出来ると言う事からWAFを導入する機会が増えてきている。 特に管理画面等をIPアドレスで絞った場合に起こりうる事だが、サーバー変数をREMOTE_ADDRから取っていると 111.222.333.444, 123.456.789.120 と言った形で前がアク…

いちいちPHPからCSVにデータをエクスポートする際の文字コード変換を使うのが面倒くさい

タイトル通り。 本当に面倒くさい。古いシステムだと全てのカラムにmb_comvert_encodingが書いてあり人的なミスでエンコードを忘れやすい。 ふと調べていたが、ファイルに保存する際にこれにした方が楽。 fp = fopen('hogehoge.csv', 'w'); stream_filter_pr…

EC-CUBE3のClassErrorを解消する。

自分で新たに作ったClassファイルが有り、コントローラに記述をする。 $Sender = new \Eccube\Sender\Sendar(); $Sender->setRequest(array("order_id"=>$orderId)); $Sender->sendData(); 自分が作ったのは商品購入 ShoppingController.phpの商品購入コンバ…