タグ「CakePHP」が付けられているもの

[CakePHP][1.3] でCKEditorを使う

CakePHPでWYSIWYGエディタを使う方法です。

WYSIWYGエディタの中でも、今回はCKEditorを選びました。

ダウンロード


まずは、以下からCKEditorとCKFinderをダウンロードします。

そして、ダウンロどして解凍したフォルダ、「ckeditor」と「ckfinder」を、「app/webroot/js/」に配置します。

最近、ひさびさにCakePHPを触っているのですが、開発環境をCakePHP 1.3に移行しました。

戸惑うこといっぱい(^^;)

いきなりページタイトルでつまづいた・・・

今までは、ビューに

<?php echo $title_for_layout; ?>

と書き、コントローラーで、

$this->pageTitle = 'hogehoge';

とすればよかったのですが、1.3からは以下のように変わっていました。

PHPで作る携帯サイト

CakePHP関連の新しい書籍が発売されています。

↓これです。

PHPで作る携帯サイトデベロッパーズガイド

PHPで作る携帯サイトデベロッパーズガイド


PHPで作る携帯サイトデベロッパーズガイド

書籍の名前からすると、PHPを使ったモバイルサイトの作成ノウハウ本っぽいですが、中身は違います(^^;)

CakePHPKtai Libraryを使ったモバイルサイトの作成指南書です。

[CakePHP] モデルでキャッシュする方法

CakePHPでキャッシュを使う場合、一般的?にはビューキャッシュを用いるかと思います。

以下のようにコントローラーに指定すれば、ビューキャッシュが働きます。

//キャッシュ設定
var $cacheAction = array('index' => '1 hour');

上記の場合、indexというアクションに対しては、1時間のキャッシュが働きます。

キャッシュファイルは「app/tmp/cache/view」以下に保存されます。

ビュー単位でキャッシュをして大外のことは事足りるかも知れませんが、時にはモデル単位でキャッシュをしたいときがあります。

[CakePHP] paginateで他のモデルを使用する方法

cakephp-wall

ちょっとPaginateではまってしまったので、メモ。

CakePHPの1.2から実装された、Paginate。

すこぶる便利なのですが、ちょっとはまってしまいました。

通常、モデル名と同一名のコントローラーからPaginateを使用したいと思えば、何も迷うことなく、以下のようにして呼び出せます。

例えば、Postというモデルに対して、PostsControllerから呼ぶ場合。

$this->set('posts', $this->paginate($conditions));

しかし、Postというモデルを、SearchesControllerから呼ぶ場合、そのままではどのモデルを呼び出したらよいか分からないわけです。

[CakePHP] 本番運用だけ表示するElement

cakephp-wall

とても細かいことなんですが、CakePHPでWEBサービスとかを作っていると、開発時にはローカルと公開時では意味が違いますよね。

で、本番運用の時には、app/config/core.phpの下記の部分を0に変更することが多いと思います。デバック表示などを表示しないように。

Configure::write('debug', 2);

また、本番運用と、開発時で違うと言えば、例えば、公開時にはGoogle Analyticsのコードや、Adsenseのコードを貼りたい、と言う場合がありますよね。

ということで、

以下のように、Viewに記述してElementを制御すれば、本番運用時だけ表示されるようになります。

cakephp-wall

Sun Limited Mt.さんのブログで紹介してあって、激しく便利だったので、私も紹介(^^;)

これはFirefoxのアドオンなのですが、以下のサイトにまずはFirefoxで行ってください。


そして、「CakePHP API」というリンクを押すだけです(^^;)

すると、

[CakePHP] CakePHP 1.2.5 リリース

  • 投稿日:
  • by
  • カテゴリ:

cakelogo

CakePHPで安定版の最新、1.2.5がリリースされています。


  • Release: CakePHP 1.2.5 (Articles) | The Bakery, Everything CakePHP


CakePHP 1.2.5 Includes almost 40 commits and more than 20 fixes. Furthermore, due to popular demand CakePHP 1.2.5 is compatible with PHP 5.3 and includes fixes to suppress the deprecation messages. See the changelog[2] for a complete list of changes and bugs fixed.

とありますように、PHP5.3に最適化されたようです。

CakePHP 1.2.4.8284 stable & 1.3-dev リリース

cakephp-wall

CakePHPの最新安定版 1.2.4.8284 stable と、開発版 1.3がリリースされました。

まだ1.2系も十分に使いこなしていないのに、1.3系の開発版がリリースされました(^^;)

変更内容は以下のサイトを参照ください。(私は見ても分かりません(^^;))


  • changelog/1.2.x.x/8284 - CakePHP : The Rapid Development Framework for PHP - Trac


ダウンロードはこちらから。

「CakePHP修行」を追う #8

cakephp-wall

IDEA*IDEAさんのところで以前連載していた、「CakePHP修行」を追って、CakePHPの勉強がてら、自分も同じことをやってみよう、というシリーズです。

過去の記事はこちらのカテゴリーでごらんいただけます。

今回はこちらの記事から。


今回は画面のカスタマイズということで。

(1.2の解釈で)


  • /app/views/layout/default.ctpを作ればそれがデフォルトのレイアウトになる。

  • titleタグの中身はcontroller中に$pageTitleで指定できる。

  • レイアウトは複数作って$layoutで切り替えることができる。

  • レイアウト中の小さなパーツは/app/views/elementsに入れておいて使い回しできる。


ということですね。

今週の管理人Bookmarkについて

週に一回、このエントリーのように、管理人のBookmarkという記事を書いておりますが、これはいちを自動でやっております。

同じようなものとして、ソーシャルブックマーク「delicious」の「Blog Posting」というのがあると思いますが、私自身、ブックマークにdeliciousを使っておりません。(以前は使ってましたが・・・)

それに、この「delicious」の「Blog Posting」は、毎日ブログに投稿するのです・・・

毎日はちょっと・・・と思ってやめてしまいました。

で、現在私がブックマークとして使っているのは、FreshReaderです。


[CakePHP] 管理者画面でIP制限をかけてみる

cakelogo

CakePHPでは、管理者用のURLを設定できるようになっている。

app/config/core.phpにて、

Configure::write('Routing.admin', 'admin');

を有効にすれば、たとえばおなじPostsコントローラー内に、admin_indexというfunctionを作っておけば、

http://hogehoge.com/admin/posts

で、管理者用としてルーティングしてくれるようになる。

ただ、これは単にルーティングをしてくれるだけであって、認証などの実装はされていない。

で、たとえばBasic認証などは以下のエントリーが参考になります。

「CakePHP修行」を追う #7

cakephp-wall

IDEA*IDEAさんのところで以前連載していた、「CakePHP修行」を追って、CakePHPの勉強がてら、自分も同じことをやってみよう、というシリーズです。

過去の記事はこちらのカテゴリーでごらんいただけます。

前回のエントリーからだいぶ時間が経ってしまいました(^^;)。その間、公私ともにいろいろなイベントがありまして(^^;)

で、その間にCakePHPの1.2.3.8166がリリースされたので、ソースもすべてそちらに入れ替えてみました。

ということで、再開です。

今回は、こちらから。


今回はルーティングについてですね。

http://localhost/sns/

とURLを指定すると、

http://localhost/sns/users/home/

を表示したいという場合です。

CakePHPでcronを使う方法

cakelogo

CakePHPで作ったアクションなどを、cronで定期的に動かしたいときがあります。

しかし、通常のcronからはControllerのアクション直接を呼び出すことができません。

そこで、以下のようなPHPを書いてcronで動かします。

<?php
$_GET['url'] = "/hogehoge/index/";
require_once( dirname( dirname(__FILE__) ) . "/index.php" );
?>

cakephp-wall

CakePHPでは、「設定よりも規約」というだけあって、フレームワークを使っていく上でいろいろな規約を守らなければなりません。

その中の一つに、データベースのテーブル名やコントローラー名で使用する英単語の複数形です。

以前、「information」という単語の複数形が「informations」ではなく、「information」だった、ということでハマってしまったわたくしですが(^^;)、
こんなことではまらないために便利なサイトがありました。


このページは、英単語を入力すると、その複数形を表示してくれます。

↓こんな感じ。