カテゴリー
コンピューター

Composer 使用時の CakePHP コアがインストールされる場所

  • composer.json の config にある vendor-dir で指定したディレクトリ内にできた pear-pear.cakephp.org/CakePHP/Cake/ に CakePHP のコアがインストールされる
  • ちなみに、vendor-dir で指定するディレクトリは一般的に Vendor/ となる。CakePHP 公式ドキュメントより。

カテゴリー
コンピューター

CakePHP2 のアクションが無い場合のエラー内容★ご質問の調査★

次の投稿に、次のコメントいただきました。ありがとう存じます。

参考させていただきました。
こちらは、秀和のと同じようですが、本のように追加メソッドとは違いますが、
delRecordの前記は必要になるのですか?

このご質問をきっかけとして、お答えしながらも、久しぶりに CakePHP をさわってみたいと存じます。

まず、本とはこちらのことです。ご質問の方のご推測通り、秀和の本です。お勉強で投稿し、ご質問いただいた箇所は、P130 〜 P132 3-2 データベースの基本的な操作 レコードの削除、です。

まずは環境づくりです♪久しぶりのインストールはすでに済ませました♪

カテゴリー
ゲーム

Composer 体験!CakePHP 2.4.2 をインストールしてみましたの♪★初★

Composer をさわってみたいと思い、時が経ちました。そもそも Composer とはどんなものかしら?と思い1年位が経ったでしょうか。。。

  • Composer を使うとなんだか簡単に CakePHP がインストールできるらしい。
  • 依存関係を自動的に解決してくれる PHP のツールらしい。
  • CakePHP のプラグインも簡単にインストールしてくれるらしい。
  • アップデートも良い感じに行ってくれるらしい。
  • OS にパッケージをインストール!という感じではなく、指定したディレクトリの範囲内でミニマルにインストールしてくれるらしい。

何事も経験ですから、やってみました♪今回はそのノートを残しますわ。

条件・要件

  • /var/www/html/cake/sample/ に CakePHP をインストール。Composer を使いましょう♪
  • その前に Composer も /var/www/html/cake/sample/ にインストール
  • http://192.168.56.111/cake/sample/ がプロジェクトのトップページ
  • 一応記しておくと、/var/www/html/ がドキュメントルート
  • CentOS 5.10
  • Apache 2.2.3
  • PHP 5.4.22

なお、CakePHP のインストールのみを確認いたしますので MySQL は使用いたしませんの。

カテゴリー
コンピューター

CakeDC の Users Plugin を最小インストールする方法♪

CakePHP2 で 、Windows XP のいわゆるローカル環境の XAMPP 上で行っています。環境構築方法は、◆簡易★最新版◆Apach 、MySAQL 、PHP を Windows 環境でも開発できるように簡☆単さを重視して Eclipse の Pleiades All in One PHP をインストールします。 | oki2a24 と、インストール ― CakePHP Cookbook v2.x documentation をご参照ください。CakePHP2 をインストールして、http://localhost/cake01/ でアクセスできるようにしました。

今回は最小限の手間で Users プラグインを動かすための手順を記します。

カテゴリー
コンピューター

CakePHP2 でログインページをたくさん作る方法再び♪

以前、CakePHP2 でログインページをたくさん作る方法を考えました! | oki2a24 では prefix ルーティングを使用してたくさんのログインページを、同じログイン処理で作る方法をメモしました。

今思うと、prefix ルーティングを使わなくても、たくさんのログインページを作ることは可能でした。今回、その方法をメモします。

ポイント

  • ユーザ名、パスワードを入れるフォームを持ったビュー、それを受け取りログイン処理を行うコントローラーを複数作ればよいです。
  • 各ログイン処理のコントローラーでログイン後にジャンプするアクションを指定します。$components の Auth の loginRedirect で指定しますが、redirect 関数でもよいでしょう。

実際にやってみた

カテゴリー
コンピューター

CakePHP2 で ACL のテーブルにも配慮して コントローラーから大量データを直接 DB に挿入する方法

テストデータを一括で大量に登録するとき、どうされますか?はい、そのとおりです。データベースに INSERT 文で直接データを投入しますね。

ですが、CakePHP2 で ACL を使っていると、それができない!というテーブルがあることがわかります。はい、そのとおりです。users テーブルですね。

ACL のテーブル、aros と users テーブルが密接にかかわっているため、INSERT で users へのみデータを挿入することができないのです。詳しくは次のページです。

となりますと、ウェブの画面から一つ一つ登録するしかないのか、、、と思いますが、100や200のときはとてもではありませんが、無理です。

そこで、コントローラーに大量にデータを書いて登録する方法を考えました。次のようになります。

カテゴリー
コンピューター

CakePHP2 調べ物するときのスキーマメモ(個人的)

最近 CakePHP2 で調べ物をするときに、アソシエーションのあるテーブルが必要であったり、bake することが多いのでメモしておきます。

メモ内容

  • PHP パス通しと bake コマンド(Windows、XAMPP)
  • テーブル定義のスキーマ
カテゴリー
コンピューター

CakePHP2 でより深いアソシエーションのデータを saveAll する方法。

ポイント

  • saveAll の第2引数で、array(‘deep’ => true) を設定する。

具体例

カテゴリー
コンピューター

CakePHP2 でパラメータ改ざん対策。フォームの入力値以外を変更しない方法

post のデータに予期しない値が混じっているとセキュリティ上よくないです。悪意ある攻撃者がフォームに存在しないフィールドを予想して、意図しない DB テーブルのカラムを書き換える、ということがおきるかもしれません。

パラメータ改ざん対策が必要です。

そこで、入力フォームで指定したフィールドのみを確実に受け付けるようにする方法を考えました。

考えた方法

  • 入力フォームのフィールドをコントローラーやモデルなどサーバサイドで取り出して新しい変数に入れる。

例です。

カテゴリー
コンピューター

CakePHP2 でアクセス元の IP アドレス調べたら「::1」で???となった件について

とある Windows XP で XAMPP の環境で、以前メモった $this->request->clientIp(false) を試したところ、「::1」と返ってきて、????????となりました。ナンデ?調べてみて、これかな?というのにたどり着きましたので、メモします。

ポイント

  • ::1 = IPv6 のループバックデバイス = ローカルホスト = localhost

ちなみに、