備忘録です。
res.hear などを使っていて他の処理と一緒にスクリプトが動いてしまう場合、
res.finish()
と記述すると、以降の処理をキャンセルして処理を終了してくれます。
blue cat's hideout. webプログラマのきままな日常。
備忘録です。
res.hear などを使っていて他の処理と一緒にスクリプトが動いてしまう場合、
res.finish()
と記述すると、以降の処理をキャンセルして処理を終了してくれます。
cakephp3ではPhinxというツールを使って、データベースのマイグレーションを行うことができます。
型の指定において整数型は「integer」という記述をするのですが、
何も設定しないと「int」型になってしまいます。
1 |
->addColumn('stamina', 'integer', ['limit' > 6]) |
→「int(6)」となる
もしsmallintやtinyintなど、他の整数型を指定したい場合、
MySqlであれば以下のように指定すれば良いみたいです。
1 2 3 |
use Phinx\Db\Adapter\MysqlAdapter; ... ->addColumn('stamina', 'integer', ['limit' => MysqlAdapter::INT_SMALL]) |
→「smallint(6)」となる
MysqlAdapter::INT_SMALLは定義元を確認すると「65535」という整数でした。
この数字を直接指定してもうまく行きそうですね。意味はありませんが。
詳しくはPhinxのドキュメントをご確認ください。
http://docs.phinx.org/en/latest/migrations.html#limit-option-and-mysql
余談:久しぶりに放置していたブログにアクセスしたら、mysqldが落ちててビビりました。
先日の記事に続き、windowsにvagrantを導入するメモです。
ドットインストールにvagrantのレッスンがあったのでやってみたところ、
プラグインのインストールのところで躓きました。
どうもwindowsではコマンドラインからインストールできないらしい。
色々と調べてみたところ、gitからインストールする方法を見つけました。
http://numa08.hateblo.jp/entry/2013/05/19/011918
この記事に沿ってやってみます。
(以下、コマンドプロンプト(cmd.exe)で実行しています)
1 2 |
>ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x64-mingw32] |
1 2 |
>vagrant -v Vagrant 1.7.2 |
1 2 |
>gem -v 2.4.5 |
古い記事なので、記事よりもバージョンが上でしたが問題なかったです。
そしてgemはインストール済みでした。
これだけインストールしてなかったのでインストール。
1 |
>gem install bundle |
1 2 |
>bundle -v Bundler version 1.8.5 |
1 2 3 4 5 |
>git clone git://github.com/ryuzee/sahara.git >cd sahara/ >bundle install >bundle exec rake build >vagrant plugin install pkg/sahara-0.0.17.gem |
元記事よりもバージョンが上ですが、ほぼ同じ手順で行けました。
インストール確認。
1 2 3 4 |
>vagrant plugin list sahara (0.0.17) - Version Constraint: 0.0.17 vagrant-share (1.1.3, system) |
無事、インストールできた模様です。
実はここにたどり着くまでに丸2日くらい試行錯誤してました。
なんとか入ってよかったけど、windowsだと色々とめんどくさい・・
windows8.1のPCに、VirtualBoxとVagrantを使って
仮想の開発環境を構築してみました。
いろいろと引っかかることもあったのでメモ。
基本的には以下の記事を参考に進めていきます。
http://www.webcyou.com/?p=4632
公式サイトからインストーラをダウンロードし、
言われるがままインストール。
こちらも同様に、公式サイトからインストーラをダウンロードして実行。
コマンドプロンプトを起動し、以下のコマンドでバージョン確認。
1 2 |
>vagrant -v Vagrant 1.7.2 |
ちゃんとインストールできたようです。
windows8.1にMicrosoftアカウントでログインしている場合、
ユーザー名が日本語になっている場合があります。
その場合そのまま進めるとエラーになってしまうので、
いくつかのパスの設定を日本語を含まないパスに変更してあげましょう。
http://www.virment.com/change-virtualbox-folder/
「ファイル」→「環境設定」→「一般」
の順に開き、
「デフォルトの仮想マシンフォルダー」
を日本語を含まないパスに変更します。
とりあえず以下のようにしてみました。
1 |
C:\VirtualBox\VirtualBox VMs |
http://qiita.com/sugard12/items/85b2e70c87a354675a0e
「コントロールパネル」→「システム」→「システムの詳細設定」→「環境変数」
ユーザー環境変数に以下を追加します。
1 |
VAGRANT_HOME |
こちらは以下のように指定してみました。
1 |
C:\vagrant |
パスを変更したら、boxファイルをインストール。
こちらも参考にした記事をもとにインストール。
記事にあったboxのURLの日付が新しいものがあったのでこれを選択。
1 |
>vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20131103.box |
しばらく待ってインストール完了。
以下のコマンドで取得済みboxを確認します。
1 2 |
>vagrant box list centos64 (virtualbox, 0) |
ちゃんと取得できたみたいですね。
任意の場所に、vagrant用ディレクトリを作成します。
今回は、
1 |
C:\work\vagrant |
に
1 |
centos64 |
という名前で作成してみました。
コマンドプロンプトで、
1 |
>cd C:\work\vagrant\centos64 |
と入力してカレントディレクトリを移動します。
そして
1 |
>vagrant init centos64 |
と入力すると、先ほど取得したcentos64のboxを使って初期化してくれます。
1 |
C:\work\vagrant\centos64 |
の中身を確認してみると「Vagrantfile」という名前のファイルができています。
とりあえずここまで来たら、サーバーを立ち上げてみます。
1 |
>vagrant up |
1 2 3 |
default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... |
起動しない……
よく調べてみると、64bitOSで64bitの仮想環境を起動しようとする場合、
BIOSの設定が必要なんだとか。
http://qiita.com/rch850/items/ba254063df4a9ff15354
上記サイトとリンク先を参考に、BIOSの設定をなんとか変更し、もう一度チャレンジ。
1 |
>vagrant up |
今度はエラーは起きなかったです。
本当に起動したのか確認しみます。
1 2 |
>vagrant status default running (virtualbox) |
無事起動しているようです!
念のため、本当に起動できているか確認してみます。
まずは一度立ち上げた仮想マシンをシャットダウン。
1 2 3 |
>vagrant halt >vagrant status default poweroff (virtualbox) |
次に、Vagrantfileの以下の行のコメントを外し、もう一度起動。
1 |
config.vm.network "private_network", ip: "192.168.33.10" |
1 |
vagrant up |
いくつかインストールの確認が出ますがすべてOKにして起動を確認。
その後、puttyでログインしてみます。
1 |
ホスト名:192.168.33.10 |
サーバの鍵に関する警告が出ますが、「はい」を選択
ユーザー名とパスワードは、デフォルトで「vagrant」になっているようです。
1 2 3 4 |
login as: vagrant vagrant@192.168.33.10's password: Welcome to your Vagrant-built virtual machine. [vagrant@localhost ~]$ |
無事ログイン完了!
ちゃんとローカルに仮想マシンが起動しているようです。
まさか、BIOSの設定までいじるとは思いませんでした。
実際開発に使うときに必要なツール類のインストールはまたの機会に。
FormヘルパーのラベルやdivをデフォルトでOFFにしたい場合、
FormHelper::inputDefaults()が便利そう。
しかし、なぜかうまく行かない。
1 2 3 4 5 6 |
$this->Form->inputDefaults( array('label' => false) ); echo $this->Form->create('User', array( 'roll'=>'form', )); |
なんでだ……と、色々と試行錯誤して見た結果、
どうやらinputDefaults
を実行する位置がまずかったみたいです。
1 2 3 4 5 6 |
echo $this->Form->create('User', array( 'roll'=>'form', )); $this->Form->inputDefaults( array('label' => false) ); |
Form->createを実行したあとで設定するとうまくいきました。
気づいて見れば単純。