edo1z blog

プログラミングなどに関するブログです

2013-12-01から1ヶ月間の記事一覧

管理画面のメニューを自動で作成する

管理者の権限は色々ありますし、最終的にはメソッド単位で細かく管理できないといけないと思います。 あと、単にそのメソッドを実行できるか否かだけではなく、どのデータを扱うことができるかまで管理できる必要があります。 こういうのはどうもACLというら…

cakePHP モデルからランダムに取得する

orderに、'rand()'とやる public function get_banners($num = 3){ $options = array( 'limit' => $num, 'order' => 'rand()' ); return $this->find('all', $options); }

cakePHPのプロジェクトを簡単に作成するようにする

cakePHPをやってる人なら少なからずやってると思いますが、僕はやってません。 今考えて仕組みをつくりたいと思います。 今つくっているBakeを使いたいので、BakeのプロジェクトをGithubのリポジトリに入れておいて、それをクローンしてデータベースをつくっ…

Bake お気に入り登録機能

お気に入りの登録機能を実装するときにどうしようかなと思っております。 単純に考えると、お気に入りを登録する対象を設定しておき、その対象設定に基づき、モデルを作成します。もしテーブルがなければモデル作成の前にテーブル作成してもいいです。 例え…

phpstorm ディレクトリ内のファイルを全文検索

ディレクトリ内で、何らかの文字列が記載されているファイルを再帰的に探す場合、phpstormだと、ディレクトリ上で”find in path”したらできる(ディレクトリ上で右クリックするとでてくる)。

cakePHP2.3 shellで色変える

参考: http://book.cakephp.org/2.0/ja/console-and-shells.html#styling-output $this->stdout->styles('green', array('text' => 'green', 'blink' => false, 'bold' => true, 'underline' => true)); $this->out(__d('cakeconsole', "<green>Greeeen!!!!</green>\n"));

Bake改造 あたまの整理

Bakeを改造しているわけですが、結局何がしたいのか不明瞭なままつくっているとたこ足配線みたいになってきますので、目的をしぼってリファクタリングしていきます。最終的にはWEB上で設定した内容に基づいてぽこっとサイトを生むようなものを想定しておりま…

cakePHP2.3 Bakeの改造

coreのbakeをコピーしてプラグイン化することによりオリジナルbakeを作成します。 bakeに、下記機能を追加していきます。 ・twitter bootstrapを使ったviewに変更する ・多言語化機能を使った効率的な日本語化を可能にする ・管理画面のメニューもDBに応じて…

capistranoでデプロイ時にURLを置換する

下記を追加してとりあえずデプロイ時にURL置換するようにしました。 run "find #{latest_release}/app/View/. -type f |xargs sed -i -e s/\\/hoge\\//\\/hoge2\\/current\\//g"

cakePHP プラグイン内でモデルを使う

プラグインを追加して、プラグインのコントローラーから、プラグインではないモデルにアクセスする方法がよく分からない。 というか、User認証に関するロジックをプラグイン化しつつ、モデルは既存のUserモデルを使おうとするときに、プラグインのユーザ登録…

cakePHP2.3 多言語化

app/Consoleに移動して、下記を起動する ./cake i18n E押したら翻訳ファイルみたいのを作ってくれる。詳細は、ここ。わかりやすい。 /app/Locale/jpn/LC_MESSAGES/default.poに出力したファイルをコピーする。僕の場合は、/app/Locale内にdefault.potという…

githubにpushするとcapistranoと連動して自動デプロイする

githubにはPost-Receive Hooksという機能があり、これはpushされると、登録したurlにpostアクセスし、json形式でpushしたデータの内容を渡してくれる。なので、このgithubからのpostアクセスを受け付けて、pushデータ内容に応じて、capistranoのサーバにアク…

sshで接続してるときに短時間でタイムアウトにならないようにする

sshでサーバに接続してるときに非常にイライラさせられるので、調べた。 参考:ssh 接続をタイムアウトしないようにする 設定は、クライアント側・サーバ側のどちらかのみすればよいとのこと。 とりえあずサーバ側を設定してみる。 vim /etc/ssh/sshd_config…

capistranoのバージョン戻す

capistrano3.0.0以降は結構色々変わるらしく、勉強工数が必要なのと、今まで全く問題なかったのでバージョン戻してみることにした。3.0.1にアップデートしたらエラーだらけになったので。 sudo gem install capistrano -v 2.5.5 sudo gem uninstall -v 3.0.1…

Apache

Apacheの起動 /etc/rc.d/init.d/httpd start Apacheの再起動 apachectl -k graceful Apacheの再起動は、service httpd restartでもできる http://httpd.apache.org/docs/current/ja/stopping.html