candycane の導入

Posted by muchag | CakePHP,Tool |
初回投稿:2011-09-08 (木) 10:15:36 | 最終更新:2016-08-13 (土) 14:57:38


新しい記事:candycane 2016

candycane とは、Redmine というプロジェクト管理ソフトウェアの CakePHP 版。
公式:candycane on CakePHP
github:yandod / candycane

【環境】
[レンタルサーバ] さくらレンタルサーバ スタンダード
[candycane] v0.8.0
DL & インストール
DL

相変わらずコマンドラインを避け
上記 github プロジェクトページから zip ファイルを DL 。
2011-09-08 現在の最新版は v0.8.0 。
yandod-candycane-v0.8.0-0-g07e90ad.zip
 

設置

DL してきた上記 zip ファイルを解凍。

yandod-candycane-07e90ad
┣ app
┣ cake
┣ vendors
┣ .gitignore
┣ ・・・
┗ README

CakePHP のインストール記事 インストール を思い出しながら
ディレクトリ配置及び名称の変更を済ませる。
 

公開ディレクトリ内/webroot(私は変更したので名称が異なる)/index.php

の設定を変更。
 

非公開ディレクトリ内/app/database.php.install

を database.php とリネームして DB 情報を書き換え・・・
とここで気がついた。
テーブルはどうするの?

で、調べてみたところ、candycane にはインストーラ機能がある。
素晴らしい♪
 

インストール

そこで、database.php を削除して
candycane の webroot ディレクトリ相当の URL へアクセスすると
インストーラが起動する。

 
DB の設定画面が現れるので
必要事項を記入。

 

 

 

おー! もうでけた♪
とっても親切な設計だなぁ。
 

おまけ

さくらレンタルサーバのスタンダードプランでは DB を1つしか作れないため
candycane 用テーブルに prefix を付けようと candycane の再インストールを試みたところ

Error: The requested address ‘/’ was not found on this server.

と表示されてしまった。

グーグル先生に質問してみたところ

  1. app/tmp ディレクトリのパーミッションの問題
  2. CakePHP のデバッグモードの問題

の2種類の可能性があるようだが
今回は、2のデバッグモードを一旦 1 にしてみることで解決した。

Posted by muchag | CakePHP,Tool |
初回投稿:2011-09-08 (木) 10:15:36 | 最終更新:2016-08-13 (土) 14:57:38

DebugKit

Posted by muchag | CakePHP,Library & PlugIn & AddIn,困ったTT |
初回投稿:2011-07-03 (日) 19:49:46 | 最終更新:2011-07-22 (金) 9:39:48

も、もしかして、これは素晴らしいかも。

【環境】
[CakePHP] 1.3.8
DL&インストール

github:cakephp / debug_kit

2011-07-03 現在、1.3.0 が最新版。

DL した cakephp-debug_kit-1.3.0-0-g5db6ec7.zip を解凍して
出てきたフォルダを debug_kit にリネーム。

app/plugins

に配置する。

app_controller.php など利用したいコントローラに

  1. class AppController extends Controller {
  2.  
  3.     public $components = array('DebugKit.Toolbar');
  4.  
  5. }

これで完了。
 

IE との相性

導入してみた途端に IE が吹っ飛んだ。

具体的には debug_kit フォルダを
app/plugins
に放り込んで IE を F5 で更新したら
IE がクラッシュし、無言で消えた。

IE を起動して、再度アドレスを入れてみたら
無事に DebugKit が機能したので
これでいけるかもしれないけど
しばらく様子見。

こんな記事も発見した。
趣味の延長線:DebugKit+IEでのエラー緩和

上記を参考に

app/plugins/debug_kit/webroot/js/js_debug_toolbar.js
  1. var clickedEl = event.target;
  2. var clickedEl = event.target || event.srcElement;
  1. event.preventDefault();
  2. if (event.preventDefault) {
  3.     event.preventDefault();
  4. } else {
  5.     // IE
  6.     event.returnValue = false;
  7. }

と書き換えてみたが、直ったかどうかよくわからない。
 

アクション名が・・・

上述の如くパッチを当てたが、ログインアクションで不思議な現象が起こった。

users_controller.php の login アクションにてログインを処理をしているのだが
突然不具合が出た。

エラーメッセージを見ると

Missing Method in UsersController
Error: The action : is not defined in controller UsersController
Error: Create UsersController:::() in file: app\controllers\users_controller.php.


Notice: If you want to customize this error message, create app\views\errors\missing_action.ctp

アクション名 : (コロン)って・・・。

そら ctp ファイルもないでしょうよ・・・。

Firefox では問題ない。

ログイン後に元見ていたページへ飛ばす仕組みになっている。

早速 DebugKit で元ページのアドレスを見ると(何か皮肉な・・・
IE のときだけ末尾に /:/ が追加されている。

原因はわかったけど、直し方が・・・わから~にゃい!
 
参考元サイト:cakephperの日記(CakePHP, MongoDB) 超便利なDebugkitを画面キャプチャ付きで解説

Posted by muchag | CakePHP,Library & PlugIn & AddIn,困ったTT |
初回投稿:2011-07-03 (日) 19:49:46 | 最終更新:2011-07-22 (金) 9:39:48

逆引き CakePHP 1.3.x

Posted by muchag | CakePHP |
初回投稿:2011-06-19 (日) 17:02:28 | 最終更新:2011-07-22 (金) 9:38:56

【環境】
[CakePHP] 1.3.8
1.3.10

 

その他
  1. 別のコントローラのビューを利用する
  2. Index
    1. CakePHP 1.3.x Index

 

参考

公式The CakePHP 1.3 Book(The Manual)
公式(日本語)The CakePHP 1.3 Book(マニュアル)
日本語サイトは翻訳が間に合っていないらしく怪しいので、
本家英語サイトのチェックを忘れないこと。
(英語の方も記載が間に合っていないみたいだけど・・・)

CakePHP Users in Japan

Posted by muchag | CakePHP |
初回投稿:2011-06-19 (日) 17:02:28 | 最終更新:2011-07-22 (金) 9:38:56

サイト作成基本手順

Posted by muchag | CakePHP |
初回投稿:2011-05-15 (日) 18:55:45 | 最終更新:2011-07-21 (木) 14:39:53

フレームワークはとても便利なんだけど
見なければいけないところがあちこち飛ぶので
手順を忘れてしまう。

なので、簡単にメモ。

【環境】
[CakePHP] 1.3.8, 1.3.10

インストール

CakePHP 用の設定
 
順番は好み。
 

.htaccess

webroot ディレクトリの .htaccess を設定。

XAMPP 環境では何もしなくても動くが
公開環境では mod_rewrite の設定が必要みたい。

webroot/.htaccess
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     RewriteCond %{REQUEST_FILENAME} !-d
  4.     RewriteCond %{REQUEST_FILENAME} !-f
  5.     RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
  6. +   RewriteBase /webroot
  7. </IfModule>
6行目

6行目を追加。
webroot のディレクトリ名称を変更している場合は
それに合わせて名称を変更。
 

環境

ちなみこれは、webroot ディレクトリを app ディレクトリから独立させて
webroot ディレクトリのみを公開領域に配置し
app, cake 両ディレクトリを非公開領域に配置した場合に必要。

CakePHP デフォルトのディレクトリ構成で必要な処置かどうかは不明。
 

パスの設定

CakePHP では

app フォルダ\webroot\index.php

が Home になる。

そこで、上記ファイルに、各フォルダへのパスが記入されている。
確認。
 

公開環境
app\webroot\index.php
  1. define('ROOT', dirname(dirname(dirname(__FILE__))));
  2. define('ROOT', DS.'home'.DS.'(ユーザ名)'.DS.'(プロジェクト名)');

3行目の設定は、さくらレンタルサーバの場合の一例。

app フォルダと cake フォルダを格納しているディレクトリの
FTP ソフトに表示される絶対パスを記入。

app フォルダと cake フォルダを別ディレクトリに配置する手法は不明。
 

DB 設定の確認

インストール
で、DB の設定をしたが、開発環境と公開環境では設定が異なるので
確認する。
 

文字コード

デフォルトの設定には文字コードを記載する場所がないので
独自に

  1. 'encoding' => 'utf8'

を付け足す。
 

開発環境用設定の除去
MissingDetect

MissingDetect
で、設定したプラグインについて。

app_controller.php の $components より除去。
 

デバッグモードの確認
app フォルダ\config\core.php
  1. Configure::write('debug', 2);
  • 公開用 – 0
  • 開発用 – 1 or 2

開発環境と公開環境では設定が異なるので
確認する。
 

ラッパー

CakePHP のビューのラッパーは

app フォルダ\views\layouts\default.ctp

もし、存在しなければ

cake フォルダ\libs\view\layouts\default.ctp

をコピーしてくる。
 

参考サイト
Posted by muchag | CakePHP |
初回投稿:2011-05-15 (日) 18:55:45 | 最終更新:2011-07-21 (木) 14:39:53

CakePHP 用の設定(1.x)

Posted by muchag | CakePHP,Eclipse |
初回投稿:2011-05-13 (金) 1:41:32 | 最終更新:2019-09-06 (金) 11:07:43

【環境】
[Eclipse] Pleiades All in One 3.6.2 PHP
共通の設定

フォント
文字コード
コードの折りたたみ
 

拡張子を登録

更に、CakePHP のテンプレートファイルの拡張子 .ctp を登録
[ウィンドウ]-[設定] より

 
出てきたダイアログで
① 左ペインの [一般]-[コンテンツ・タイプ]

② 右上部ペインの [テキスト]-[PHP コンテンツ・タイプ]

③ 右中央の「追加」をクリック。

 
出てきたダイアログに
「*.ctp」と入力してOK。

 
すると、右下部の「ファイルの関連付け」に
「*.ctp」が追加されているので
確認したらOK。

 

ヘルパーのコード補完準備

CakePHP のヘルパー機能は CakePHP 独自のものなので
Eclipse が対応できない。

そこで、Eclipse にそれを教え込む。

後述の参考サイトは 1.1.x 用なので、1.3.x 用に以下のようにした。


// stop page loading
 exit; 

// reference helpers so Eclipse provides code completion
 $ajax = new AjaxHelper();
 $cache = new CacheHelper();
 $form = new FormHelper();
 $html = new HtmlHelper();
 $javascript = new JavascriptHelper();
 $jquery_engine = new JqueryEngineHelper();
 $js = new JsHelper();
 $mootools_engine = new MootoolsEngineHelper();
 $number = new NumberHelper();
 $paginator = new PaginatorHelper();
 $prototype_engine = new PrototypeEngineHelper();
 $rss = new RssHelper();
 $session = new SessionHelper();
 $text = new TextHelper();
 $time = new TimeHelper();
 $xml = new XmlHelper();

これを参考サイトに従い配置した。

プロジェクトディレクトリ\app\config\code_completion.php

 
ちなみにヘルパーのファイル群は、以下に存在する。

プロジェクトディレクトリ\cake\libs\view\helpers

 

モデル、コンポーネント等のコード補完準備

後述参考サイトに載っているけれど、今一よくわからないので、今はパス!
 
参考元サイト:Writing Some Code Eclipse PDTでCakePHP開発、まず設定すべきこと

Posted by muchag | CakePHP,Eclipse |
初回投稿:2011-05-13 (金) 1:41:32 | 最終更新:2019-09-06 (金) 11:07:43

CakePHP 1.3.x Index

Posted by muchag | CakePHP |
初回投稿:2011-05-12 (木) 23:28:39 | 最終更新:2011-08-09 (火) 19:01:56

長らく避けてきたフレームワークを
意を決して Symfony に取り組んだ途端
CakePHP を使わなければならなくなった。

面白い運命ね。

というわけで、ひとまずは必要なところだけでも。

【環境】
[CakePHP] 1.3.8
1.3.10

CakePHP は、1.1.x, 1.2.x, 1.3.x と続いているが
それぞれで大分違う印象。

なので、今はまだよくわからないから、1.3.x Index と題して進めてみることにした。

丸っきりの書きかけ項目は Not found になる。

序章
  1. 設定
    1. インストール
    2. Eclipse
    3. CakePHP のプロジェクトを Eclipse に関連付ける
  2. ルール
    1. 基本的な流れ
    2. DB
    3. モデル
    4. ビュー
      1. Element
    5. コントローラ
      1. Component
    6. Component
    7. Shell
    8. URL
    9. リクエストパラメータ
    10. 管理用(admin)システム
  3. サイト作成基本手順
  4. 手法
    1. MVC のフォルダ分け
    2. SSL の利用
    3. 多言語対応(国際化)
    4. データのバリデーション
      1. rule 編

 

config
  1. core.php
    1. Routing.prefixes
      1. 管理用(admin)システム
    2. Security.level

 

コア(cake フォルダ)
  1. libs
    1. controller
      1. components
        1. auth.php
          1. 新規登録時のパスワードをバリデーション
          2. ログイン後のリダイレクト
          3. Open ID を経由
    2. view
      1. helpers
        1. paginator.php
          1. 検索条件の引継ぎ(GET)
        2. form.php
          1. create
          2. datetime
          3. input
          4. radio
          5. select
          6. HTML 5 対応

 

コントローラ
  1. メソッド
    1. ビューとの連携
      1. render
  2. モデル
    1. サブモデルの conditions

 

モデル
  1. データを取得する
    1. find
      1. COUNT
      2. DISTINCT
      3. GROUP BY
  2. プロパティ
    1. alias
    2. virtualFields

 

plugin
  1. DebugKit
  2. Ktai Library
  3. MissingDetect

 

がい~ん!(はまったこと)
  1. 解決済み(たぶん)
    1. $this->flash でリダイレクトしない
    2. CSS が適用されない
    3. MySQL でカラム種別を tinyint(1) にしてハマッタ
    4. エラーメッセージとその対処法
    5. キャッシュのクリア
  2. 未解決

 

その他
  1. Tips
    1. 1.2 -> 1.3 変更点
    2. CakePHP 関連
    3. RSS の取得&表示
      1. SimplePie
    4. save 後に id を得る
    5. URL 取得
    6. さくらインターネットで CakePHP
      1. cron
    7. メソッド名を変数指定
  2. Index
    1. 逆引き CakePHP 1.3.x

 

参考

公式The CakePHP 1.3 Book(The Manual)
公式(日本語)The CakePHP 1.3 Book(マニュアル)
日本語サイトは翻訳が間に合っていないらしく怪しいので、
本家英語サイトのチェックを忘れないこと。
(英語の方も記載が間に合っていないみたいだけど・・・)

CakePHP Users in Japan

Posted by muchag | CakePHP |
初回投稿:2011-05-12 (木) 23:28:39 | 最終更新:2011-08-09 (火) 19:01:56