渋谷道玄坂近辺のランチ情報 高橋名人版
高橋名人はブログでいつも食事の記事をアップしていますが
最近、私の職場近辺でよくランチをしているようなので、まとめてみました。
2011年12月
- 七志(ラーメン)http://ameblo.jp/meijin16shot/entry-11118109209.html#main
- はしばやん(長崎ちゃんぽん)http://ameblo.jp/meijin16shot/entry-11118505302.html#main
- チョモランマ(ラーメン)http://ameblo.jp/meijin16shot/entry-11119439060.html#main
- スパイスガーデン(カレー)http://ameblo.jp/meijin16shot/entry-11121380511.html#main
2012年1月
- 餃子の王将(餃子)http://ameblo.jp/meijin16shot/entry-11128393648.html#main
- 神座(ラーメン)http://ameblo.jp/meijin16shot/entry-11131899169.html#main
- パク森(カレー)http://ameblo.jp/meijin16shot/entry-11132815589.html#main
- 博多風龍(ラーメン)http://ameblo.jp/meijin16shot/entry-11133975802.html#main
- 梅蘭(中華)http://ameblo.jp/meijin16shot/entry-11134540605.html#main
- 龍盛菜館(中華)http://ameblo.jp/meijin16shot/entry-11138371449.html#main
- 風来居(ラーメン)http://ameblo.jp/meijin16shot/entry-11139079231.html#main
- B級グルメ村 ギン酒場(居酒屋)http://ameblo.jp/meijin16shot/entry-11140941872.html#main
- パク森(カレー)http://ameblo.jp/meijin16shot/entry-11143681711.html#main
- 金伝丸(ラーメン)http://ameblo.jp/meijin16shot/entry-11145555656.html#main
- MARUHACHI(居酒屋)http://ameblo.jp/meijin16shot/entry-11147396480.html#main
- パンチョ(スパゲッティ)http://ameblo.jp/meijin16shot/entry-11150237039.html#main
- SHANTI(スープカレー)http://ameblo.jp/meijin16shot/entry-11151122789.html#main
2012年2月
- パク森(カレー)http://ameblo.jp/meijin16shot/entry-11153002550.html#main
- 丸亀製麺(うどん)http://ameblo.jp/meijin16shot/entry-11156885681.html#main
- 梅蘭(中華)http://ameblo.jp/meijin16shot/entry-11157839174.html#main
- モンキーフォレスト(インドネシア料理)http://ameblo.jp/meijin16shot/entry-11158854683.html#main
- 豚丸(豚丼)http://ameblo.jp/meijin16shot/entry-11159712848.html#main
[PHP] CLIの Symfony, limeなどでカラー表示にならない
自宅のMacのうち1台だけどうしてもカラー表示にならないものがありました。
とりあえず php5-posix をインストールしたら解決しました。
lime.phpのソースではこんな感じになってました。
// disable colors if not supported (windows or non tty console)
if (DIRECTORY_SEPARATOR == '\\' || !function_exists('posix_isatty') || !@posix_isatty(STDOUT))
{
// 色なし
}
symfonyのソースは見てませんが、なおってくれたのでこちらも似たような感じになっていると思われます。
[Symfony]ER図ツールとsymfony Modelを連携させる方法を模索中
これまでしばらくの間、DBDesigner4で作ったER図のデータを、以下を参考にした自作のTaskでschemaファイルに変換してModelをつくっていました。
http://www.symfony-project.org/plugins/sfDB4toPropelPlugin
ですが、最近は以下のような理由でストレスを感じるようになってきてしまいました。
- DBDesigner4はMacで使えない
- 自作のTaskがいけてなくて 対応できる領域が狭い
- 複数DBに接続するケースは未対応
- Doctrineを使いたいケースは未対応
- MySQL Workbenchを使いたいなあと思っている
ということで、いけてない自作Taskをなんとかするついでに、できればMySQL Workbenchと連携させるために 参考になるものをさがしています。
わりとまとまっているものがMySQLフォーラムにありました。
http://forums.mysql.com/read.php?153,208229
MySQL Workbenchはpluginで機能拡張ができるため、アプローチが2パターンありますね。
私はコマンドラインで生成するのが好きなので後者のほうがよいのですが、いまのところ思うように変換できるものがありません。
DB接続時に毎回実行しておきたいクエリーがあるとき
database.yml
all:
hogeghoge_db:
class: sfPropelDatabase
param:
classname: PropelPDO
dsn: 'mysql:dbname=hogehoge;host=localhost'
username: hogehogeuser
password: hogehogepass
encoding: null # コメントアウトすると set names utf8 されてしまう
persistent: false
pooling: false
queries: # 接続時に実行
- "SET time_zone = '+9:00'"
SwiftMailer 4 + Symfony 1.2 の初回設定
私の環境(symfony1.2.9-DEV,Swift 4.0.3)では、SwiftMailerを
(sf_root_dir)/lib/vendor/Swift/ 以下などにそのまま置くだけではうまくautoloadしてくれなくて動きませんでした。
解決法は http://forum.symfony-project.org/index.php/m/77609/ にあるのですが、載っているソースにtypoがあったりしてはまったので、次回からは以下のようにしようと思います。
(1) (sf_root_dir)/lib/vendor/Swift4/ 以下にSwiftMailerのtarを展開
Swift4 の直下に swift_init.php とかが置かれる感じで。
$ ls lib/vendor/Swift4/ classes dependency_maps mime_types.php preferences.php swift_init.php swift_required.php
(2) lib/vendor/Swift4/swift_required.php の以下の部分を変更して、同ディレクトリの swift_required_4sf.php に保存
- Swift::registerAutoload();
+ spl_autoload_register(array('Swift', 'autoload'));
(3) 以下のファイルを以下の内容で設置
(sf_root_dir)/plugins/sfSwiftMailerPlugin/config/sfSwiftMailerPluginConfiguration.class.php
<?php class sfSwiftMailerPluginConfiguration extends sfPluginConfiguration { public function initialize() { require_once dirname(__FILE__) . '/../../../lib/vendor/Swift4/swift_required_4sf.php'; return true; } }
(4) symfony cc
ちなみにJISで日本語メールを送るのは半分あきらめてて、別にutf-8でいいやと思ってます。
sfFormのvalidatorで引っかかったエラーメッセージを全部取得
いろいろあって、sfFormはvalidatorのみ使用(widgetはほぼ自動で挿入される_csrf_token的なものでしか使用しない)、という方針で開発をすることがあるのですが、その際のエラーメッセージの取り出し方について一旦たどりついた結論です。
$this->form = new HogehogeForm(); $this->form->bind($request->getPostParameters()); if (!$this->form->isValid()) { $error_messages = array_map( create_function('$e', 'return $e->getMessage();'), $this->form->getErrorSchema()->getErrors());
{sfForm}->getErrorSchema()->getErrors(); で、バリデーションに引っかかったすべてのエラーをsfValidatorError(Exceptionのサブクラス) の配列として取得できるようなので、これを利用してみました。myFormクラスに書いておいたほうがよいかもとか、そもそもこれでいいのかという気もするので、もうちょっと検討します。
Taskにも時々application名を指定してあげる
うっかり忘れるのでメモ。
Taskを作る際、symfony generate:task して処理を書くわけですが、sfConfig::get()で取得できる設定が妙に少なくて焦りました。
以下 var_dump(sfConfig::getAll()); の結果です。
array(17) {
["sf_symfony_lib_dir"]=>
string(33) "/path/to/symfony1.2/lib"
["sf_root_dir"]=>
string(43) "/home/yoshihi6/my-project"
["sf_apps_dir"]=>
string(48) "/home/yoshihi6/my-project/apps"
["sf_lib_dir"]=>
string(47) "/home/yoshihi6/my-project/lib"
["sf_log_dir"]=>
string(47) "/home/yoshihi6/my-project/log"
["sf_data_dir"]=>
string(48) "/home/yoshihi6/my-project/data"
["sf_config_dir"]=>
string(50) "/home/yoshihi6/my-project/config"
["sf_test_dir"]=>
string(48) "/home/yoshihi6/my-project/test"
["sf_doc_dir"]=>
string(47) "/home/yoshihi6/my-project/doc"
["sf_plugins_dir"]=>
string(51) "/home/yoshihi6/my-project/plugins"
["sf_web_dir"]=>
string(47) "/home/yoshihi6/my-project/web"
["sf_upload_dir"]=>
string(55) "/home/yoshihi6/my-project/web/uploads"
["sf_cache_dir"]=>
string(49) "/home/yoshihi6/my-project/cache"
["sf_orm"]=>
string(6) "propel"
["sf_admin_module_web_dir"]=>
string(15) "/sfPropelPlugin"
["sf_environment"]=>
string(3) "dev"
["sf_logging_enabled"]=>
bool(false)
}application名を特に指定していないため、setting.yml, routing.yml なんかが読み込まれないということではあるのですが、
- (sf_root_dir)/config/app.yml すら読み込まれない
- log/ 以下にログが出力されない
あたりが一見不可解におもいました。ymlに書いた設定を参照したい、あるいはログを出したいという時点でapplication名の指定が必要なんですね。
ちなみに、application名を指定するのはconfigureメソッド内にあるsfCommandOption('application',〜〜)の第5引数で指定すればよいです。
protected function configure()
{
// 〜〜〜
$this->addOptions(array(
- new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name'),
+ new sfCommandOption('application', null, sfCommandOption::PARAMETER_REQUIRED, 'The application name', 'backend'),
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
));
// 〜〜〜
}