ホーム > アーカイブ > 2009-01

2009-01

1月に入ってから読んだ本をまとめてみます

書くことも特になかったので1月に読んだ本をまとめます(一部12月購入分もありますが)。マインドマップに順次まとめて手元におく本以外はアマゾンのマーケットプレイスで売ってしまおうと思います。

この土日ではじめてパソコン開きました。勉強ゼロの週末でした。

symfony1.2でバッチ処理を作るにはどうすればいいの?

symfony1.2 では generate:task コマンドが用意されているのでそれを利用します。

  1. まず、ジェネレートコマンドでひな形を作る
  2. ジェネレートコマンドを実行すると、

    % ./symfony generate:task foo:sample

    fooSampleTask.class.php というファイルが作成される

    // lib/task/fooSampleTask.class.php
    <?php

    class fooSampleTask extends sfBaseTask
    {
      protected function configure()
      {
        // // add your own arguments here
        // $this->addArguments(array(
        //   new sfCommandArgument('my_arg', sfCommandArgument::REQUIRED, 'My argument'),
        // ));

        $this->addOptions(array(
          new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'),
          new sfCommandOption('env', null, sfCommandOption::PARAMETER_REQUIRED, 'The environment', 'dev'),
          new sfCommandOption('connection', null, sfCommandOption::PARAMETER_REQUIRED, 'The connection name', 'propel'),
          // add your own options here
        ));

        $this->namespace        = 'foo';
        $this->name             = 'sample';
        $this->briefDescription = '';
        $this->detailedDescription = <<<EOF
    The [foo:sample|INFO] task does things.
    Call it with:

      [php symfony foo:sample|INFO]
    EOF;
      }

      protected function execute($arguments = array(), $options = array())
      {
        // initialize the database connection
        $databaseManager = new sfDatabaseManager($this->configuration);
        $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection();

        // add your code here
      }
    }

  3. execute 関数をカスタマイズする
  4. 『add your code here』の下に実際の処理を記述していきます。

    protected function execute($arguments = array(), $options = array())
      {
        // initialize the database connection
        $databaseManager = new sfDatabaseManager($this->configuration);
        $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection();
       
        // DB アクセスも普通に使える
        $obj = BookPeer::retrieveByPK(3);
        var_dump($obj);
       
        // ログも便利
        $this->log('処理終了');
      }

  5. バッチ処理を実行する
  6. % ./symfony foo:sample

  7. 引数を使いたいとき
  8. protected function configure()
      {
        // // add your own arguments here
        $this->addArguments(array(
          new sfCommandArgument('my_arg', sfCommandArgument::REQUIRED, 'My argument'),
        ));

    configure 関数の先頭のコメントを外すと my_arg 引数が有効になり、execute 関数の引数 $arguments['my_arg'] で利用できるようになります。

    % ./symfony foo:sample aaa
    // print_r($arguments);
    Array
    (
        [task] => foo:sample
        [my_arg] => aaa
    )

  9. 他にも
  10. symfony/task/project とか
    symfony/task/generator とか

    symfony のライブラリー内のタスクにサンプルになりそうなファイルがあるので参考にしてください。

    参考
    第16章 - アプリケーションの運用ツール

symfony のデプロイ方法をためしてみる – jobeet23日目

本番アップはいつも FTP でやっているのですが、capistrano とかある程度ツールを使って自動化したいなと前から思っていました。今ちょうど symfony をやっているので symfony のデプロイ方法を試してみました。

  1. 本番環境チェック
  2. 実行すると、OK とか Warinig とか表示されるので必要に応じて対応します。APC のインストールとか。これは便利。

    wget http://trac.symfony-project.org/browser/branches/1.2/data/bin/check_configuration.php?format=raw check_configuration.php
    php check_configuration.php

  3. コアライブラリへのパスを本番に合わせる
  4. // config/ProjectConfiguration.class.php
    require_once dirname(__FILE__).'/../lib/vendor/symfony/lib/autoload/sfCoreAutoload.class.php';

  5. データベースを本番の設定に
  6. $ php symfony configure:database "mysql:host=localhost;dbname=prod_dbname" prod_user prod_pass

  7. シンボリックリンクなどがあれば固定化する
  8. $ php symfony plugin:publish-assets

  9. エラーページを設定する
  10. プロジェクトの転送
  11. 本番環境の情報を設定する

    # config/properties.ini
    [production]
      host=www.symfony-project.com
      port=22
      user=jobeet
      dir=/var/www/jobeet/
      type=rsync
      pass=

    転送したくないファイルがあれば設定する

    # config/rsync_exclude.txt
    .svn
    /web/uploads/*
    /cache/*
    /log/*
    /web/*_dev.php

    プレビュー

    $ php symfony project:deploy production

    実際に転送する。rsync が実行される

    $ php symfony project:deploy production --go

  12. 終了。あとこの方法だとサーバ上の不要になったファイルを削除してくれないのでそこは考える必要あり。

やっぱり rsync は楽ですね、どのファイルをアップするかとか考えなくてよくて、コマンド一発でデプロイが完了します。注意しないといけないのが設定ファイルを開発用のまま転送すると本番環境が動かなくなることです。この問題も本番反映用のシェルファイルを作れば解決しそうです。

参考
symfony | Web PHP Framework | The Jobeet Tutorial | Day 23: The Deployment
第16章 - アプリケーションの運用ツール
秋元@ずっと雪 » Windows+symfony1.1でproject:deployを動かすためのパッチ

phpフレームワークsymfonyをdreamhostへインストールする方法

dreamhost へ symfony をインストールしようと試みました。

  1. symfony をインストール
  2. symfony 本家から tar.gz のアーカイブを wget で取得して解凍します。

    % cd ~
    % mkdir -p symfony/vendor
    % cd symfony/vendor
    % wget http://www.symfony-project.org/get/symfony-1.2.2.tgz
    % tar zxvf symfony-1.2.2.tgz

  3. symfony のバージョンを確認(エラーが発生)
  4. % cd ~/symfony/
    % vendor/symfony-1.2.2/data/bin/symfony -V
    Parse error: syntax error, unexpected T_OBJECT_OPERATOR in

  5. エラーの原因を調査する
  6. dreamhost の wiki を検索すると、symfony についてのページがあるので参考にする。(dreamhost で困ったらとりあえず wiki で検索する。)
    原因はパスの設定のようなので対応

    % export PATH=/usr/local/php5/bin:${PATH}

    これで正常に動く

    % vendor/symfony-1.2.2/data/bin/symfony -V
    symfony version 1.2.2

Vicuna Adaptorって知ってましたか?

Vicuna Adaptorって知ってましたか?

はてなスター、はてなブックマーク、はてなブックマークコメントの表示などに対応していて、はてなを使っているのに wordpress な自分にとってはとても便利です。これを作った人はすごく若そう。すごいね!!

続きを読む

wordpressの検索結果ページをAutoPagerizeに対応させてみた

wordpress を AutoPagerize に対応させてみました。
テーマに、Vicuna を使っていると link-template.php ではなく Vicuna 内の修正が必要になります。
修正の詳細が知りたい方は Continue reading をクリックしてください。

参考
cocoa*life - AutoPagerizeに対応させました。
R405 - WordPress2.7にAutoPagerize導入(Vicuna)

続きを読む

wordpressのナビゲーションの色を変えてみた『COLOURlovers』


colourlovers

COLOURlovers を参考にナビゲーションの色を変えてみた。ざっと見て好きな配色とかあればデータをダウンロードして真似すればいい。ダウンロードするには会員登録が必要。
あと百式の人とデザインがかぶらないように違うテーマにしたのにいつのまにか同じテーマになってた。。

参考
WordPressのテーマをwp.Vicuna Extでカスタマイズするまでのいろいろ - IDEA*IDEA ~ 百式管理人のライフハックブログ ~

より早くよりより多くつくる

たくさん造ってみること - Sooey
Contrast | The Blog | Fail early, Fail often, and Learn

良くつくるより、多くつくることを意識したほうが結果的に良いものができるという話。カヤックを思い出した。

新しい資産運用本

勝間さんのお金は銀行に預けるなを読んでから資産運用を始めたものの、サブプライムで全然思い通りにいっていない私の運用。
そこでアマゾンで高評価のこの本を買ってみました。

勝間さん本では分散投資と言っていましたが、この本では不況の場合は分散してもだめだよって主張しています(確かに。。)実際にやってみて思ったのが世界不況だと株は国外・国内どっちも下がります。国債も上がる訳じゃありません。国内はプラスマイナスゼロぐらいですが、国外は下がっています。
そこでこういう時は外貨預金しなさいというのがこの本の主張です。あと大事なのが捉利という概念。詳しくは本を読んでください。

wordpress リニューアル

最近 mt から wordpress に移行するのがはやっているみたいです。その関係で wordpress についてのいいなぁと思う記事がいくつかあったので参考にしながら、このブログも見た目とかプラグインとかをいれかえてみました。

参考URL
http://www.ideaxidea.com/archives/2008/12/wordpress.html
http://www.ideaxidea.com/archives/2009/01/wordpress_1.html
http://seofromusa.com/wordpress-customizazion/wordpress-starter-guide/
http://www.trick7.com/blog/2009/01/04-042930.php

あと追加で、Akismet、WP Super Cache を入れてみました。WP Super Cache はいい感じですね、管理画面のインターフェースとか仕事で参考になるかも。また iG:Syntax Hiliter の他のプラグインを有効かすると設定が元に戻ってしまう不具合にも対応しました。

ホーム > アーカイブ > 2009-01

ぴくちゃー
ブログパーツ

ページの上部に戻る