公開日 2018.1.22更新日 2018.2.13カテゴリ:CakePHPタグ:PHP,install,Beginner,CakePHP
はじめに RSSリーダーだの記事解析だのいろいろやってみたい&AWSのお勉強をしてみたいツマ・ヨーコです。こんばんわ。 なるべく疎結合な設計を目指して、 RSSフィードへのアクセス パースしてほげほげする この辺は分離したくて、RSSフィードを何も考えずにぶち込む先としてDynamoDBとして採用してみました。 ただ、DynamoDB + CakePHP3でやりたいのだけれど、AWS SDK for PHPの情報が古いバージョンのものだったりして、てこずったのでメモ残します。 環境 CentOS 7 PHP 7.0.29 CakePHP 3.6.0 AWS SDK 3.54.6 コード 設定ファイル /** * * AWS SDK Setting * */ 'Aws' => [ 'includes' => ['_aws'], 'services' => [ 'default_setting
この記事を三行にまとめると 次回辺り、どうでもいい記事を一度挟んどくか…… createする者と言えば創造主……つまり神だ! createdとmodifiedの機能を逆にしておくことだってできちゃう どもども、最近CakePHP3のことばっかり書いてるわたくしです。 あまり開発技術の記事ばかり続くのは嫌なんですけどね……だって、まるで俺が普段真面目にエンジニアとして活動しているみたいに誤解されちゃうじゃないか! 次回辺り、どうでもいい記事を一度挟んどくか……。 まあそれはさておき、えーと、今日はcreatedとmodifiedに関する話っす。 バージョン3に限らず、CakePHPを使っている人は、createdとかmodifiedっていうカラムをテーブルに作る機会があると思います。datetime型(date型でも良いんだっけ?)にしておくと、データをINSERTしたりUPDATEするとき
この記事を三行にまとめると ここらで一覧を作っとこうと思います 既存の記事に対応させるのもめんど……大変だし どうせならもっと別のことを頑張りたいですね ちょっと「CakePHP3を触ってみました」シリーズの記事が増えて来たので、ここらで一覧を作っとこうと思います。 今後、同シリーズの記事が増えたら、ここに足して行きます。各記事にのもこのページへのリンクを貼っておくんで、よろしくどうぞ。 composerって何やねん composerを使ってCakePHP3をインストールしたことについて書いてます。 やはりwebrootは切り出そう webrootの下にあるindex.phpやらcssやjsを別の場所に移すやり方です。 パスワードのハッシュ化はどうやるんだ? パスワードのハッシュ化や、ハッシュ化されたパスワードのチェックについてです。 あれ、updatedは? データを登録するときのcre
CakePHPで検索条件を設定するときに'OR'を指定したい場合(初心者編) $conditions = array( 'Model' => array( 'id' => 1, 'or' => array( array('user' => 'hogehoge'), array('user' => 'mogumogu') ) ) ); $this->Model->find($conditions); とすると WHERE (`id` = 1) AND ((`user` = hogehoge) OR (`user` = mogumogu)) こんな感じになります。 さらに'AND'を入れたい $conditions = array( 'Model' => array( 'id' => 1, 'or' => array( array( 'user' => 'hogehoge', 'passwor
REST ? CakePHP Cookbook v2.x documentation http://book.cakephp.org/2.0/ja/development/rest.html 湘南社中テクニカルブログ: <b>Server</b>CakePHPでRESTのJSON APIを作成する http://blog.shonanshachu.com/2012/01/cakephprestjson-api.html Cakephp 2.x の REST API を作成してみる ≪ Hello My World http://plmin.us/blog/2013/01/29/cakephp-2-x-rest-api/ CakePHP2.0で配列をXMLに変換し出力する | Code Life http://code-life.net/?p=1096 簡単に言えば、HTTPのURLを指定し
CakePHP 1.2.x, 1.3.x, 2.x の Paginate / PaginatorComponent に SQL インジェクション可能な脆弱性 CakePHP(1.2.x 以降全て)の Paginate / PaginatorComponent にて SQL インジェクション可能な脆弱性が見つかりました。 すでに cakephper さんの blog でも注意勧告されていますが、 連休中にリリースされた情報ということで見落としている人もいると思うので、こちらでも。 内容 この脆弱性を悪用すると Paginate / PaginatorComponent にて SQL インジェクションが可能となります。 現在は影響の大きさを考慮して、公式サイトでは脆弱性の詳細は明らかにされていませんが(一定期間、ユーザのアップグレードを待って公開するようです。)、私が開発環境で試したところ、S
2013/01/17 更新 CakePHP2.0ではACL関連のチュートリアルが充実。プラグインと併せて簡単な導入&便利な管理機能を →ACL Plugin for CakePHP 2.0 Plugin ACLがCake2に対応している事をツイッターで知りました。(良いフォロワーのツイートはなぜこんなにも素晴らしいのか・・・) しかし、チュートリアルが充実したといっても実際のところACL関連はまだまだ情報が少ないです。一度使ったことがあるプラグインという事もあり今回も記事にしてみました。 はじめに 今回は管理者・運営者・一般ユーザという3つのグループ(ロール)をもとにACL機能を実装してみたいと思います。Blogsコントローラを作成し、CRUDへアクセス権限を設定します。 管理者:CRUDを許可 運営者:CRUを許可 ユーザ:Rを許可 ToDoリスト ダウンロードとインストール prefi
pagination element for CakePHP on twitter bootstrap このコードでいけました。超絶便利。 ただ、誰かのコメントにあるようソースの2行目の$modulesは$modulusに修正してね。 ・使い方はこのファイルをelementsディレクトリに格納。 ・view側で表示したい部分で以下のように呼び出す。 ※カレントモデルと違うモデルでpaginationを行う場合は以下のようにモデル名を第二引数で指定してあげる。 <?php echo $this->element('pagination',array('model'=>'Theme')); ?> ちなみに、elementへ変数を渡せることを本件で知りました。 マニュアルには以下で載っています。 http://book.cakephp.org/1.3/ja/The-Manual/Developi
今日もお酒のまないんで、ひとつ記事かいてねることにします。本日もcakePHP2.1のお話です。 さて、設定ファイルでデータベースに持つ程でもない情報というのは、かつてconst.phpに書いてました。 ところが例えば男・女 とか、普遍的なものだったりあまり情報が書き換わらないものって結構あります。 で、設定ファイルが結構カオスになってたりします。 今回は、設定情報もこんなふうに持つと良いよってことで、https://github.com/cakephp/datasources/tree/2.0/Model/Datasource ここからArraySource.phpだけをいただきます。そんでapp/Model/Datasourceにポロリと入れます。 次に、設定です。database.phpにこんな記述を足します。既存のデータベースの設定に追加してくださいね。 var $ArraySou
今年7月に入ってから業務でCakePHPを使用しており、外国人プログラマ達によって書かれたソースの改修とパフォーマンス・チューニングを行っています。 その際、DB更新処理でSQLの発行回数を減らす必要が生じたので、その対応方法を述べたいと思います(需要はあまりないかもなぁ) saveメソッドのSQL発行回数は多い? DBの更新処理にはsaveメソッドを使用することが多いと思いますが、実はこいつ、かなりの曲者です。 百聞は一見に如かずです。 まず下のメソッドを見てください。 public function addPoint($user_id, $point) { $user = $this->findById($user_id); $user['User']['point'] += $point; $this->save($user); } 実際に今の案件で散見されるsaveメソッドの使い方
Posted on: 2012/03/05 CakePHPのAuthコンポーネントで、誰でもユーザ登録ができるようにする場合 CakePHPのAuthコンポーネントは簡単に認証ステムを作れるので便利なのですが、誰でもユーザ登録できるようにしようと思うと若干工夫が必要でした。 誰でもユーザ登録できるようにする為には、 1. ユーザ名の重複はNG、設定できるパスワードにもルールを決める →モデルのバリデーションで設定する 2. パスワード入力欄は普通のテキストフィールドにする →ユーザが自分で設定するパスワードを視認できるようにする為 3. addアクション(ユーザ追加)は認証からはずす まずはさらっと書いてみます。 > モデル(user.php) <?php class User extends AppModel { var $name = 'User'; var $validate = a
Posted on: 2012/03/30 CakePHP 検索プラグイン「Search Plugin」の検索条件サンプルいろいろ 言わずと知れたCakePHPの検索プラグイン「Search Plugin」 高度な検索機能はもちろんのこと、検索結果にもページネーションを引き継いでくれる便利なプラグインです。 「これは入れとくべし!」なプラインのひとつですね。 CakeDC / search ということで、検索条件サンプルをいくつか載せておきたいと思います。 1. 特定フィールドの部分一致検索 2. 複数フィールドの絞り込み検索 3. アソシエーションテーブルのフィールドの検索 4. クエリー検索(OR検索) 5. アソシエーションテーブルのフィールドを含むクエリー検索 プラグインのインストール CakeDC / search からプラグインをダウンロードします。 ※CakePHPのバージョ
中身を少し見てみたところ、かなり色々と仕様が変わっています。ファイル名がキャメルケースになっていたり、独自シェルのファイルの配置が変わっていたります。そのため CakePHP 1.3 のファイル全てを CakePHP 2.0 に一新して、オリジナルのファイルを適用することにします。適用する際に注意することがありましたので、その注意点を以下にまとめます。 設定ファイルは新しいものを使いましょう database.php や bootstrap.php や routes.php を見ただけでも変更点がありました。そのためファイルをそのまま移行するのではなく、これらのファイルに既存の設定を手作業で反映しなおすようにします。 ヘルパーの使い方が変更されました 今までは以下のようにヘルパーを使うことができました。
CakePHP1.2から1.3への変更作業でおこなったことまとめ。 思ったよりも面倒なので、誰かの役に立てば貰えばうれしい限り。 [公式移行ガイド] 404 Not Found 基本的には、上記のサイトを見れば変更すべき箇所が分かります。 ちなみに私がその中で、対応したのは(主に)以下のこと。 バリデーションルールの変更セッションコンポーネントの明示的読み込みpageTitleの変更find周りの変更$form->selectの書き方の修正以下に順に説明します。 バリデーションルールの変更1.3では、バリデーションルールが変わって以下が利用できなくなりました。 VALID_NOT_EMPTYVALID_EMAILVALID_NUMBERVALID_YEARapp/config/bootstrap.phpに定義すれば、そのまま使えるようですが、将来的なことを考えれば新しいバリデーションルール
改訂して以下にアップしました。 http://pplace.jp/2011/05/cakephp1-2%E3%81%8B%E3%82%891-3%E3%81%B8%E3%81%AE%E5%A4%89%E6%9B%B4%E4%BD%9C%E6%A5%AD/ 以下、前に書いたもの。 cakePHP1.3も安定版になったので、FMTも1.2からバージョンアップしました。 ※テスト環境にだけ適用していて、本番環境には来月適用予定。 その際に変更した点を以下に列挙。 誰かの役に立ってくれれば。 <公式移行ガイド> http://book.cakephp.org/ja/view/1561/Migrating-from-CakePHP-1-2-to-1-3 まず1.2から1.3に移行する際に公式移行ガイド。 基本的に、ここにどのように変更になったか書いてます。 その中で、私が今回対応したのは(主に)以下
イントロダクション CakePHPのキャッシュ機構は、 キャッシュストレージへのラッパー コアに統合されているもの の2種類があります。 前者はCache::read()などを使うもので、自由にキャッシュの操作が行えます。 後者のほうは、ビューキャッシュ、クエリキャッシュ、ディレクトリマップのキャッシュなどで、仕組みを理解した上で設計を思慮する必要があります。 特に問題となるのはビューキャッシュです。 ビューキャッシュの生成・破棄 ビューキャッシュは、エレメントキャッシュと、アクションキャッシュ(フルページキャッシュ)があります。 アクションキャッシュでは、生成されるファイル名の規則としてURIを用いています。 これにより、ルーターの起動の前にキャッシュ処理に移行することを可能にしています。 例:(以下、パスはAPP/tmp/cache/views/以下を示します。) / => home.
CakePHP用に作られた簡易GPS検索プラグイン「GeoSimple Plugin」 Tweet 2010/9/16 木曜日 matsui Posted in ソフト紹介, 記事紹介・リンク | No Comments » CakePHP用に作られた簡易GPS検索プラグイン「GeoSimple Plugin」というのがあるようです。 → エクスギア Blog CakePHP 携帯ライブラリと位置情報ライブラリを使った簡易GPS検索プラグイン「GeoSimple Plugin」 [exgear.jp] 来月の10/2~10/3に行われるイベント「2010 PHP Matsuri」に向けて作られたライブラリとのことで、実装にはCake用の携帯ライブラリ「Ktai Library」と、GPS取得部分は「Geomobilejp」を利用しているとのことです。 便利そうなのは、半径○kmなどの取得方
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く