CakePHPノート2:自己参照モデルの定義方法

下記の用な自己参照するデータベーステーブルがある場合どのようにして、cakephpのモデルを定義するの?

CREATE TABLE `nodes` (
`id` INTEGER NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(40) NOT NULL ,
`parent_id` INTEGER NOT NULL ,
PRIMARY KEY (`id`),
);

注)parent_idは、親Nodeと子Nodeを結びつける為のForignKey。

解決方法としては、親ノードとして参照する為の$belongsTo、及び子ノードを参照する為の$hasManyを定義する必要があります。モデルは下記の用になります。

class Node extends AppModel {
   var $name = 'Node';
   var $belongsTo = array('ParentNode' =>
      array('className' => 'Node','foreignKey' => 'parent_id'));
   var $hasMany = array('ChildNode' =>
      array('className' => 'Node','foreignKey' => 'parent_id'));
}

CakePHPノート1: Modelを使わないControllerの書き方

最近CakePHPをサイド・プロジェクトで使っているので、メモを残していこうと思います。

ControllerでModelを使いたくないケースはどのようにコードを書けば良いのか?
解決方法: var $uses = array();をControllerの中に追加する。

class MyController extends AppController{
   var $uses = array();
   function index(){
   }
}

これを付けないと、Modelがないとのエラー・メッセージが表示される。

CakePHPをUbuntuにインストールする方法

(翻訳)CakePHP Tutorial:Installing CakePHP on Ubuntu

  1. Apache Server, MySQL, PHPをインストール
    sudo apt-get install apache2 mysql-server php5
    
  2. CakePHP 1.2をダウンロード
    http://cakephp.org から最新のcakephpをダウンロード。私はcake_1.2.3.8166.tar.gzをダウンロードしました。
  3. Web rootにパッケージをコピーし、展開する。
    ターミナルをcakephpをダウンロードした所で開く。

    sudo cp cake_1.2.3.8166.tar.gz /var/www/
    cd /var/www
    sudo tar -xvf cake_1.2.3.8166.tar.gz
    sudo mv cake_1.2.3.8166 cakephp
    
  4. tempフォルダーのパーミッションの変更
    sudo chmod -R 777 cakephp/app/tmp
    
  5. mod-rewriteを有効化する
    sudo a2enmod rewrite
    
  6. /etc/apache2/sites-enabled/000-default ファイルを開き、AllowOverride None を AllowOverride Allに変更
    sudo vim /etc/apache2/sites-enabled/000-default
    
    
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    
    

    から

    
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    
    

  7. Apacheの再起動
    sudo /etc/init.d/apache2 restart
    
  8. ブラウザを開いて、アドレスバーに http://localhost/cakephp/ を入力。CakePHPの文字がブラウザーに表示されている。

もしCakePHPの文字がカラーで表示されていたら、CakePHPが正常に作動しています。おめでとうございます!

ブックマークサービスを作りました。

ブックマーク・サービスを作りました。このサービスの基本的な機能として、ウエブ上でブックマークを管理する事が出来ます。まだまだ、機能が不十分であったり、ちょっとした問題があったりするのですが、使ってあげても良いよという方がいたら使ってみて下さい。

URL: http://www.you29.com/bookmarks

使い方:

  1. ページ右上の「ユーザー登録」からアカウントを作成して下さい。
  2. ページ中央(下)に「ブックマークを追加」リンクがあるので、Firefox、Opera、Safari、Chromeをお使いの方は、ツールバーに、ドラッグ&ドロップして下さい。IEのかたは、右クリック、お気に入りに追加を選択し、そしてリンク・カテゴリーに追加して下さい。
  3. 面白いと思った記事やブログを見つけるたびに「ブックマークに追加」ボタンを押すと、ブックマークがウエブ上に保存されていきます。ブックマークはデフォルトで共有されます。[Share]チェック・ボックスをオフにするとブックマークは共有されません。
  4. 共通ブックマークを見ると他の人のブックマークを見ることが出来ます。

質問、コメントはhttp://www.you29.com/contact/からお願いします。

Hive, Hadoop and Facebook

下記のプレゼン資料によると、Facebookでは、Hadoop上でHiveを動かし、データーベースのような、データへのアクセスビリティーを実現している。Hadoop File Systemは、KeyとValueによる、Hash/Dictionaryタイプのファイルシステムなので、データベースのようなデータへのアクセスビリティーがない。しかし、Hiveによりリレーショナル・データベースのようなアクセスビリティーを開発者に提供できる。これから、Hive – Hadoopなどを利用した、分散環境上でのデーターベースを利用するケースが増えてくるのだろう。

2008 Ur Tech Talk Zshao

View SlideShare presentation or Upload your own. (tags: hadoop hive)