朝霞市在住のWEB系エンジニアかあさんのPHPメインの雑記帳

ITかあさん

最新記事

複数ActiveRecord mergeメソッドでorder by

Post.joins(:entries).merge(Entry.order("entries.id DESC"))

mergeメソッドの中で orderの基準となるフィールド名を指定するんだけど、”id”はどちらのActiveRecord (Model)でもつかっている場合、どちらのActiveRecordのidか不明のため、その場合はテーブル名と合わせて指定する必要がある。(まあ、普通そうだよね。)

PHP: in_array() to Ruby

PHP

$array = array(‘foo’, ‘bar’, ‘baz’);
if(‘foo’, in_array($array)) {
 echo ‘配列にfooが含まれています';
}

Ruby

array = [‘foo’, ‘bar’, ‘baz’];
if( array.include?(‘foo’) ) {
 puts ‘配列にfooが含まれています';
}

Node.jsのアンインストールから再度インストール

 Nodeがインストールされていたら消す

node.jsって全部小文字なんっすね
Node.jsが予めインストールされていて、消す方法に手間取っていましたが、いい感じのシェルスクリプトが公開されていました。
以下gistで公開されているシェルスクリプトでnodeをアンインストールしてください
Mac OS X uninstall script for packaged install of node.js

上記リンクのRead.meの手順通りにコマンドを実行する前提で

curl -ks https://gist.githubusercontent.com/nicerobot/2697848/raw/uninstall-node.sh | bash

Homebrew からnodebrewをインストール

(Homebrew は予めインストールされている前提で)

$ brew install nodebrew

nodebrewのパスを確認
$ curl -L git.io/nodebrew | perl – setup

export PATH=$HOME/.nodebrew/current/bin:$PATH
↑↑↑↑↑
コピー

~/.bash_profileにnodebrewのパスを登録

echo “export PATH=$HOME/.nodebrew/current/bin:$PATH” >> ~/.bash_profile

.bash_profileの再読み込みして、nodebrewを確認
$ source ~/.bash_profile
$ nodebrew help
nodebrew helpで結果が返って来ればOK

インストール可能なNodeのバージョンを確認
$ nodebrew ls-remote

インストール実行
$ nodebrew install-binary v8.9.1

バージョンの選定について

Nodeの最新バージョンについてNode.js公式または
nodebrew のls-remoteについて確認のこと。

必ずLTS(長期サポートサポート)の最新バージョンを使用のこと

バージョンの切り替え

最新、安定、バージョン指定のいずれかでインストール

最新版をインストール
$ nodebrew install latest
安定版をインストール
$ nodebrew install stable
バージョン指定でインストール
$ nodebrew install v0.11.13

バージョンを切り替え
$ nodebrew use latest
stable
$ nodebrew use stable
バージョン指定
$ nodebrew use v0.11.13

現在のnodeのバージョンを確認

U04997noMacBook-Pro:~ u04997$ node -v
v6.11.2

CakePHP SSL強制リダイレクト

CakePHP3からCakePHP1.3対応SSL強制リダイレクト

CakePHP2 Helper
わーい、久々のCakePHPネタ。
相当昔に開発をして、たまに保守作業をしていたCakePHP1.3環境。SSL対応する必要が出てきて一通りの設定が完了したのち、非SSLアクセスを強制的にHTTPSにリダイレクトさせる必要が出てきました。
調べたところ、CakePHP3からCakePHP1.3 (それ以前のバージョンについては確認していませんが) Securityコンポーネントを使うという点で全く同じです。

CakePHP2以下


if文でactionを指定することで、指定されたaction でのみSSL強制が動作可能です。例はAppControllerですが、個別のControllerで動作もちろん可能です。

CakePHP3

CakePHPではコンポーネントの呼び出しの仕方が少し変わっているだけで、強制リダイレクト用の関数を呼び出しの内容など、ほぼ差はない形になっています。