だ。ログ。

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

PHP

CakePHP2で生SQLを発行する。

なんと言うか他者の作ったシステムに手を入れると言うのは非常に手が掛かる。 モデル部分で変な結合が入っていたり、意図しないデータの取得の仕方をしていたりしている為、最短距離でこういうデータってのが取りづらい。 特にSQL部分はモデル部分がいかに基…

CakePHP2でリダイレクト

CakePHPでルーティングでディレクトリごと使わなくなったとかって事がある。 コンテンツとしての価値の問題もあるが、これを.htaccessであれこれコネてしまうと面倒な事になる。 CakePHPのルーティング内であれば Router::connect('/hoge/:fuga', array('con…

各デバイスのカレンダーにPHPから動的にデータを登録する

なかなかそれっぽいググり方が出来なかった自戒も込めて。 まず、カレンダーは形式が決まっていてXMLではないが書き方のお作法がある。 そのお作法にしたがって書く事が要点。ファイル形式は.icsで出力する。そのファイルをブラウザで読み込むと各デバイスOS…

PHP5.3とそれ移行の配列の落とし穴

サイトマップを生成するプログラムを作っていた。 ローカル環境はbent-centos7.2を利用しているので、必然的にPHP7系をインストールしている。 $array_xml([ 'loc' => 'https://hogefuga.mofu/aaaa/bbbb/', 'lastmod' => date('Y-m-d'), 'changefreq' => 'we…

CakePHP2のパスワードの生成の仕方

結構何やってんのかってのが分かり辛いがデフォルトの設定のまま使っているとCakePHP2はsha1で暗号化している。 CakePHP2.6が前提だが、送信されたパスワードをただ暗号化しているだけではない。/app/Config/core.php 230行目付近 Configure::write('Securit…

根本的な見直し

「サーバーが遅い」と言う意見をよく聞く。 ひねくれたシステム屋からすれば、通信環境とか様々な事を加味した上で遅い言ってるワケではないので、サーバーが遅い・重いと言う言葉はどのアーキテクトを触るか?と言う事の判断材料にしたくはない。 根無し草…

aceエディタの入力した内容を取得する

jsプラグインの中でもこの頃多様しているaceエディタ ace.c9.io ブラウザ上でエディタが出せるので便利。とりあえず使うにはこれ。 <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script>

(MySQLのバージョンの違いが)でたわね。

vagrantを利用したbent-centos7.2を使っているので稼働しているサーバーの関係でどうしても古いシステムにOSのバージョンや参照しているリポジトリの違いが出てしまう。 Field 'カラム名' doesn't have default value 本番では上手くいくが、自分の開発環境…

Laravelのプロジェクトを作った際の500エラー

どうしてもAPIを作る為にLaravelを使う事が増えた。 $ laravel new hogefuga ってなことでプロジェクトを作ったので、つっこんだサーバーにの確認をば。 ブラウザにテストしているサーバーのアドレスを叩くと500エラーよくよく展開したディレクトリを見ると …

jsonデータをphpで保存する際のエンコード

あまり日本語を扱いたくはない。 しかもjsonデータだからなるべくコード値のみ持ちたいが、オーダーとして文字列も持って欲しいと言う要望が来ている。 $json = array( "condition" => array([ "condition_1" => "ほげふが", "condition_2" => "もふべろ" ])…

javascriptのindexOfの検索の落とし穴

配列内の特定の要素だけを消したい。と言う事がある。 例えばだがチェックボックスや要素をクリックした際にイベントが発火して、その要素を消したい。等で仮定する。 ## 仮に要素自体は一旦配列に入った状態だとする。 var youso = [1,2,3,4,5,6,7]; この配…

kcfinderのconfigのはなし

自家製CMSのビジュアルエディタとしてckeditorを使っている。 前に作っていたシステムのマスターさんがckeditorだったからっていう事もある。 源流でもあるwysiwygでも良いのだが、最初に使っている物を使ってしまう悪い癖だ。ある程度のコンテンツは文字だ…

MySQL Has Gone Away

Vagrantでローカル環境を作っていた際にmy.cnfの事を全く考えずに数GBあるデータを $ mysql -uhoge -p < dump.sql と何気なくコマンドを打つと程なくして ERROR 2006 (HY000) at line **: MySQL server has gone away 逝かれましたとの表示が。 なんだろ?と…

phpMyAdminのblowfishの生成

毎回ローカル環境を立てる際にphpMyAdminのblowfishの作り方で止まる。 # expectのインストール $ yum install expect # インストールが終わったらblowfishの生成 $ mkpasswd -l 46 と言う事でmkpasswdで文字列を生成してコピペすれば終わり。 インストール1…

Laravelのartisanを利用してディレクトリ/コントローラーを作る

いつも忘れるのでコピペ出来るように。 Laravelでcontrollerを生成する際にartisanで作成するが例えばapi用のディレクトリを作ってコントローラーを生成するって時は以下 $ php artisan make:controller Api/HogeController ||>

curlのデフォルト表示

apiにjsonデータを送信してレスポンスコードを取る。と言う部分でcurlで~なんて言うだったので軽い気持ちで $curl = curl_init("apiのurl"); curl_setopt($curl, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); $…

PHPでS3のデータ取得

IAMの設定とかS3のバケットの設定とかはが終わっている前提で、aws-sdk-phpを突っ込んで開発準備を行う。 公開ディレクトリトップにて実行 $ composer require aws/aws-sdk-php $ curl -sS https://getcomposer.org/intaller | php $ php -d memory_limit=1 …

はじめての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のテンプレートで税抜き価格を表示する

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