タグ

CakePHPに関するmuamqmのブックマーク (66)

  • PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    ことの始まり PHP の srand 関数について調べていて、ひょんな拍子にsrandのseedに文字列(numericである必要はあるけど)を渡せることを知った。 では、ここに long を超えるものを放り込むとどうなるのか。 では結果をごらんください。 「!?!?」 なぜこうなるのか 秘密は PHP 処理系の zend_parse_arg_impl 関数にあります。 zend_parse_arg_impl はphpの関数に渡された引数をパースする部分で、longを要求する関数にstringな値が渡された時の処理はこの部分ですね。 https://github.com/php/php-src/blob/master/Zend/zend_API.c#L335 さて、読み進めていくと「ん!?!?」ってなる行があるはずです。 この行ですね https://github.com/php/php-

    PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    muamqm
    muamqm 2013/12/11
    はてぶのコメント欄で補完する
  • 「8時間耐久 PHP構築の教室」を開催しました。 : candycane development blog

    今回も怒涛の8時間耐久という感じで、いつになくハードな内容になりました。 VPSを借りたりするとブログなどをみて見よう見まねで構築をする事もあるかと思いますが、ソースからPHPをビルドしてインストールするという流れを通じてPHPの動作原理や、はやりのnginx + php-fpmの構成を構築してWordPressを動かすというスパルタな感じの勉強会でした。途中、仮想マシンのMACアドレスの問題やmbstringの問題でapacheがクラッシュするなどの問題に直面しましたが、ひとまず西川さんがnginx + php-fpmWordPressを動かすというゴールには到達する事ができました。また副産物としてCでHello Worldを動かすという作業もしてみたのでビルドしてバイナリを作るという流れが身についたのかなと思います。これで4つ目の8時間耐久シリーズになったわけですが、希望があれば内容

  • CakePHPで独自の共通コントローラを継承させて使用する - tomstay's memo

    CakePHPさんはControllerを作成する場合は基的にAppControllerを継承させて作成するわけですが、AppConroller→他の共通のController→HogeControllerみたいに1つ別の共通コントローラを継承させたいってときがあって、かなーりはまったのでメモ。 ただ、激しくバッドノウハウ。 で、何にはまったかというと、AppControllerに共通のコンポーネントやヘルパーを書いて継承した場合は、HogeControllerに書いたコンポーネント、ヘルパーとかはちゃんとマージしてくれるんですが、自分で作ったコントローラを継承させた場合は親のコンポーネントやヘルパーを上書きしてくれるという素敵仕様だった。ひどくね? というわけでControllerのソースを見に行ったら__mergeVars()で、AppControllerの内容をうまくマージさせてる

    CakePHPで独自の共通コントローラを継承させて使用する - tomstay's memo
    muamqm
    muamqm 2012/04/15
    自分もこの現象にハマり中です……。2.0系だと解消されてるのかなあ。
  • XML 取得と配列へのパース - CakePHP Tips

    XML データの取得と配列へのパース方法。 XML 取得 /cake/libs/xml.php の XML クラスを使用する。 uses('Xml'); $xml = new Xml($url); ※1 uses はライブラリ内 (/cake/libs/) のファイルを読み込む関数。 ※2 $url は URL だけでなく、ローカルに保存されている XML ファイルのパスや生のXMLデータでも読み込み可能。 ※3 $xml->__rawData に読み込んだ生の XML データが保存されている。 XML を配列にパース 上記で取得した XML データを配列にパースする。 /cake/libs/set.php の Set クラスを使用する。 Xml クラスとセットで使用する場合は、xml.php で set.php を読み込んでいるので、別途読み込みは不要。 $array = Set::re

  • Creamo – ゲーム開発

    は世界に知られるゲーム大国でもあり、「スーパーマリオ」「ドラゴンクエスト」「どうぶつの森」などなど、これまで数々の世界的ゲームを生み出してきています。そんなゲームを生み出す「ゲームデザイナー」。必然的に人気の職業でもあります。 ゲームデザイナーは「ゲームプランナー」とも呼ばれ、ゲームの基設計(=開発)をする仕事です。広範囲の開発技術や知識を要するだけでなく、ゲームの流行にも敏感でなければいけません。ゲーム設計は高度な技術を要しますが、一つの大きな世界観を生み出し世界に発信できる可能性がある面などは、やりがいのある仕事といえるでしょう。 キャラデザインは別の職業 ちなみに、ゲームデザイナーはゲームの登場人物のキャラクターデザインをする仕事のように勘違いされることもありますが、それは勘違い。キャラクターデザインをするのは、グラフィックデザイナー(CGデザイナー)の仕事となります。 ゲーム

  • CakePHP 2.1.1 への移行の記録 - すたら日記

    まだ書きかけです。 初めてCakePHPを触ったのは、バージョン1.1のとき。 その頃に購入した書籍も、ずいぶん時代遅れになってしまいました。 ということで、現在最新版の2.1.1を導入する際の備忘録を記しておきます。 【環境】OS : Linux Mint 12 LXDE サーバ : Apache (XAMPP for Linux 1.7.7) 使用DB : MySQL 【目次】 初期設定 Configフォルダ Controllerフォルダ Localeフォルダ Modelフォルダ Viewフォルダ コンソールとシェル さくらサーバへアップロード 初期設定CakePHPを使用可能にする下準備です。 トップページの警告を全て解除していきます。 Security.salt と Security.cipherSeed を変更暗号を作るための素として、2項目設定しなくちゃいけないようです。 Ca

    CakePHP 2.1.1 への移行の記録 - すたら日記
  • CakePHP + jQuery Mobileでの注意点 - すたら日記

    リンクとフォーム送信後のページ遷移にAjaxを使わない やるべきこと下記のように、jQueryライブラリを読み込んだ後、 jQuery Mobileを読み込む前に、初期値を設定すべし。 <script src="jquery.js"></script> <script> $(document).bind("mobileinit", function(){ $.mobile.ajaxEnabled = false; }); </script> <script src="jquery.mobile.js"></script> その理由 デフォルトでは、外部ページへのリンクがクリックされると、フレームワークはリンクを自前でパースし、遷移先をAjaxリクエスト(Hijax)で取得し、ロード中アイコンを表示します。【引用】ページ遷移 - jQuery Mobile 1.0b1 日語リファレンス h

    CakePHP + jQuery Mobileでの注意点 - すたら日記
  • CakePHP Viewファイルのテーマ化

    CakePHPCakePHPのViewファイルでは呼び出すViewファイルをテーマ化することでテーマごとのデザインで任意に出力することができます。 CakePHPのViewファイルでは呼び出すViewファイルをテーマ化することで テーマごとのデザインで任意に出力することができます。 例えば、特定のURLにアクセス時にAさんの場合はAのデザインテーマ、 Bさんの場合はBさんのデザインテーマで表示といったように表示をまたは デザインを変更することが可能です。 では実際にテーマの機能を利用するにはどうするかというと、次のようになります。 まずテーマ機能を有効にしたいコントローラーにテーマ機能を利用できるように 次のように記述します。 var $view = 'Theme'; 続いてテーマとなるViewファイルを用意します。 「app/views」内に「themed」ディレクトリを用意します。 作

    CakePHP Viewファイルのテーマ化
  • CakePHP で複数のデータベースを使用する - mallowlabsの備忘録

    機会があって CakePHP を触ってみた。 PHPわず嫌いで触ってなかったけど CakePHPRails のおいしいところを多く持っているので意外に好印象だった。 何より動作が軽快で FastCGI 等を使わなくても十分に実用可能なのが嬉しい。 アプリケーションを開発していて、デフォルトのデータベースとは別に ユーザ情報だけ別の(既存の)データベースを使いたいと思った。 こんな時でもフレームワークのソースコードを変更することなく 実現可能な CakePHP に感心した。 以下に方法をメモしておく。 CakePHP のバージョンは 1.1.18.5850。 方法 app/config/database.php に使用したいデータベースの設定を追加する。 <?php class DATABASE_CONFIG { var $default = array('driver' =>

    CakePHP で複数のデータベースを使用する - mallowlabsの備忘録
  • CakePHPをやってみました-その1 | サラリーマンのすらすらIT日記

    PHPでEUCからUTF-8のコード変換ができた」ので、Javaに固執する必要がなくなりました。PHPでガンガン作ればいいのですが、そうなるといつまでもPHPプログラムを"素で"作っているのはあまりよくありません。やはりフレームワークを使うべきでしょう。 Zend、Symfony、CakePHP、CodeIgniter等々、PHPのフレームワークにはいろいろあるので選択に困りますが、CakePHPをやってみようと思いました。ある程度とっつきやすく(と思う)、しかも資料・が十分にあるからです。 「公式サイト」から最新のVer1.3.0 stableVer1.3.2 stableをダウンロード。こちらに様々なバージョンのCakePHPがありますが、普通はダウンロードすべきものは一番上にあるものかと思いますが、さにあらず。「1.3.0」「1.3.2」というのを選びます。Windowsで使うの

  • 手っ取り早くスマートフォン対応をしたい場合 - ただふれたものについて書くブログ

    CakePHPですでにPC版などが存在していて、手っ取り早くスマートフォンサイトを作りたい場合、テーマ機能 + jQuery Mobile を使うと簡単です。 CakePHPにはテーマという機能があります。 参考: CakePHP Viewファイルのテーマ化 | WIDGET-INFO やり方 たとえば、Controller::beforeFilter() などでユーザーエージェントを判定してController::$themeを設定します。 [app_controller.php] <?php class AppController extends Controller { public $view = 'Theme'; public function beforeFilter() { $useragents = array( 'iPhone', // Apple iPhone 'iPo

    手っ取り早くスマートフォン対応をしたい場合 - ただふれたものについて書くブログ
  • CakePHPで複数テーブルに対するトランザクションを使う場合 - takami_hiroki’s blog

    CakePHPでトランザクションを使用する必要があったのですが、一般的に用いられている方法だと、複数のテーブルを1つのトランザクションとして更新したい場合、コントローラ内での実装がとても分かりにくくなると感じ、異なる実装方法をとってみたので、ご紹介します。 一般的な実装方法とその課題 一般的な実装方法としては、app/models/app_model.phpに、下記のようなトランザクション管理用のメソッドを追加することが多いと思います。基的に、各モデルクラスは、AppModelクラスを継承しているため、これらのメソッドをどのモデルからも利用可能になります。 function begin() { $db = & ConnectionManager::getDataSource($this->useDbConfig); $db->begin($this); } function commit

    CakePHPで複数テーブルに対するトランザクションを使う場合 - takami_hiroki’s blog
  • ひでぶろぐ。 hasManyでくっついてきた件数を数える

    [PR] 今日のニュースは?? : 2ch自動まとめキュレクス [PR] 名言や格言をどうぞ! : 名言満載! [PR] 副業したい? : 出張ホスト募集中 [PR] SEO最高峰のクオリティー : 知る人ぞ知る、SEOUP.com。テラプレミアムアクトは抜群におすすめ! [PR] 口コミ対策 : 口コミでSEO対策。なんとびっくり、1円からご利用頂けます。 [PR] 出張キャバクラアゲハ : ちょっとした飲み会のお供に。デートのお相手に。 カウンターキャッシュのほうがいい! http://www.hideblog.net/nikkis/show/305/ 以下、古い記事。 あーたまらん。目が痛い。 毎回、はまる。hasmanyのデータカウント。 で、まとめました。 $this->unbindModel(array('hasMany'=>array('SUBMODEL'))); $this

  • CakePHP 1.3 JsHelperを使ってみる - 駄記

    CakePHPの1.3rc版がリリースされたので、ぼちぼち試しています。 1.2→1.3のマイグレーションガイドなどを見ながらやってみたら、いろいろと変更しなきゃならない点はありましたが、とりあえずエラーが出なくなるところまでは移行できてきました。 今回は、新しく追加になったJs Helperをちょっと使ってみました。 今までのCakePHPでは、AjaxヘルパーなどでPrototype.jsを使っていましたが、今回のアップデートで新しくなったJs Helperは、使うJavascriptライブラリを選ぶことができます。現時点で標準で対応しているのは jQuery、Prototype/Scriptaculous、Mootoolsで、コントローラからエンジンを選ぶことでどのライブラリを使うかを選択できます。 var $helpes = array('Js'=>array('Prototype

    CakePHP 1.3 JsHelperを使ってみる - 駄記
  • CakePHPのhasAndBelongsToMany(HABTM)をチェックボックスで関連付ける

    Model hasAndBelongsToMany(HABTM)はpostに設定します。 models > post.php class Post extends AppModel { public $name = 'Post'; public $hasAndBelongsToMany = array( 'Tag' => array( 'className' => 'Tag', 'joinTable' => 'posts_tags', 'foreignKey' => 'post_id', 'associationForeignKey' => 'tag_id', 'fields' => array('id','name'), 'unique' => true ), ); } models > tag.php class Tag extends AppModel { public $name

    CakePHPのhasAndBelongsToMany(HABTM)をチェックボックスで関連付ける
  • Planet CakePHP | CakePHP-Related Articles, Blog Posts & News

    A little over a week ago I finally got my cast removed from my right hand. It felt so good to get the cast off after 3-4 weeks of wearing one. I was unable to move my pinky finger nor wiggle my wrist for the first hour, but my hand is good as new now. However, the knuckle does not heal back in place so I no longer have a visible pinky knuckle (so weird looking). I still have some pain and discomfo

  • CakePHPのシェル機能で各種コントローラーやコンポーネントを読み込む - うたちゃく!開発ブログ(febのプログラミング備忘録)

    CakePHPのシェル機能の使い方って情報が少ない気がする。 ということでちょっとしたまとめ。 <?php App::import('Core', 'Controller'); // コントローラーのベースクラス App::import('Controller', 'App'); // AppController App::import('Controller', 'UsersController'); // UsersController App::import('Component', 'TestComp'); // コンポーネント App::import('Component', 'MyPlugin.PluginComp'); // プラグインのコンポーネント class SampleShell extends Shell { var $uses = array('User'); /

    CakePHPのシェル機能で各種コントローラーやコンポーネントを読み込む - うたちゃく!開発ブログ(febのプログラミング備忘録)
  • メンテナンスページ - 「こうポ」高齢者向けお役立ち情報ポータルサイト

    Website is under maintenance We are doing some updates on our site, and we need to be offline for a while. We will be back with you shortly! Twitter Facebook Instagram

    muamqm
    muamqm 2011/03/31
    こんなことがあったのか。道理で動かないわけです……
  • CakePHP ではてブみたいな長期ログインレスなサービスを実装するには? ( ラボブログ )

    スパイスラボ神部です。 前回のブックマークレットのエントリ とも関係あるのですが、Web サービスに1度ログインさせて、そこから長期にわたってログインさせておくためのノウハウというのは結構無いような気がします。とりあえず目の前の会員認証のところを解決する部分について言及しているものはたくさんあるのですが、それらを長期的に運用するにあたっては、あとからわかる問題でもあり、対応が難しかったりもします。 自分は CakePHP を使って実装していることもあり、そのあたりの情報を探したのですがそちらもあまり見あたりません。そうなるとソースコードをあたるしかないのですが、せっかくフレームワークを使っているのにできればソースコードを直接あたりたくはない!というちょっと後ろ向きな姿勢で、ブックマークレットと長期ログインしっぱなしなサービスの設計について考えてみたいと思います。 -ブックマークレットが好き

  • 【CakePHP】使用しない方が良い・できないメソッド等の一覧 | ECWorks Blog

    CakePHP1.3もRC1となり、いよいよ1.2からの移行を気で考えた方が良い時期に差し掛かってきました。 さて、1.2から1.3になることで、いくつかの新機能が搭載されていく(つまりメソッドが増える)のですが、反対に無くなっていくものもあるので注意が必要です。 たまたまTwitterでこれに関連する話題があったので、ついでなので調べてみました。 1.2.6のソースコードに書かれている「推奨しない」機能は次の通りです。 ■cache() (basics.php) 「Cache::write()」を使用します。 ■&Set::get() (set.php) Setは静的に使うことが推奨されています。 このためget()で設定値を入手しようとするとワーニングが出ます。 ■Xml::compose() (xml.php) Xml::toString()のラッピングです。 ■Email::_l