[Symfony]しんふぉにゃんaiファイル

Posted under symfony,Symfony2 by uechoco on 日曜日 29 5月 2011 at 01 : 05 : 30

先日、日本Symfonyユーザー会のマスコット「しんふぉにゃん」のイカ娘バージョンを作る際に、原画をイラストレータでトーレスしました。せっかくなのでaiファイルを公開します。イラストレータのバージョンはCS5です。

※ライセンスは何がいいんでしょう?原画はCCでしたっけ?


[symfony]Symfony2はsymfony 2と書いてはダメ

Posted under symfony by uechoco on 日曜日 8 8月 2010 at 22 : 34 : 37

そろそろSymfony界隈でもSymfony2の噂が出てきていると思います。Symfony2についてとっても重要なことがあったので、私も微力ながら記事を書いて広めていこうかと思います。それはBlog | Talk about Symfony2, not Symfony 2 | symfony | Web PHP Frameworkという本家の記事のことです。

簡単に言うと、Symfony2に関して、ブログを書いたり、ドキュメントを書いたり、Twitterでつぶやいたりするときは、「Symfony2」と、空白文字を入れずに記述して欲しいというお願いです。これは検索エンジンなどでの検索時に他の1.x系のバージョンの記事と混同させずに出すようにするための施策です。symfony 1.x系とSymfony2系がフレームワーク構造として大きく異なるので、情報を正しく切り分けたいということですね。

拙い英訳ですが、原文の一部を翻訳しておきます。

As we maintain a lot of different symfony versions, it is sometimes difficult to find documentation for the exact version you are using. So, when you start using symfony 1.4 for instance, and search for something on a search engine, you find lots of results for other versions of the framework like 1.0, 1.1, and 1.2. With Symfony2, the problem will be even more annoying, as the framework is very different.

私たちはたくさんの異なったsymfonyバージョンをメンテナンスしているので、あなた方が使用中のまさにそのバージョンのドキュメントを見つけにくいことが時たまあります。ですから、例えばあなたがsymfony 1.4を使い始めて、何かを検索エンジンで探したとき、symfony 1.0や1.1、1.2などの違うバージョンの検索結果をたくさん見つけるでしょう。Symfony2に関して言えば、この問題はなおさらイライラさせることと思います。というのも、Symfony2は大きく違っているからです。

By removing the space between Symfony and the version, like in Symfony2, you can search for “Symfony2″ instead of “symfony”, and search engines will then only return results related to “Symfony2″.

Symfonyとそのバージョンの間の空白文字を取り除く、例えばSymfony2というようにすることで、あなたは”symfony”という単語の代わりに”Symfony2″という単語で検索することができ、検索エンジンも”Symfony2″に関する結果だけを返してくれることでしょう。

So, please, as of now, whenever you write a blog post, a piece of documentation, a tweet, or a presentation, never write “Symfony 2″ again. Use Symfony2 instead. That way, someone can search for “Symfony2 routing” and he will have only Symfony2 results.

ですから、現時点では、あなたがブログの記事やドキュメントの一部、つぶやきやプレゼン資料を書くときには、”Symfony 2″(注訳:空白文字を含んだ表記)とは書かないでください。代わりにSymfony2という表記を使ってください。そうすれば、”Symfony2 routing”と検索した人は、Symfony2の結果だけを得ることが出来るでしょう。

Blog | Talk about Symfony2, not Symfony 2 | symfony | Web PHP Framework

ということで、みなさんも早いうちからSymfony2という空白文字を含まない表記に慣れ親しんでくださいね!あと、この記事、あるいは同様の記事を書いて、多くの人にこの表記方法知ってもらえるようにお願いします!


[symfony]1.3/1.4からyamlでon/off/yes/noが使えない

Posted under php,symfony by uechoco on 金曜日 6 8月 2010 at 01 : 51 : 30

いまだにsymfonyの1.3/1.4系の和書がでないので、symfony 1.0時代の緑の本とかオレンジの本とかを参考にすることもあります。あるいはネット上には1.2系の情報がまだ蔓延しているのでそいうのも参考にしています。そんな時たまに困るのが、YAMLの書き方。タイトルの通り、symfony 1.3/1.4系ではブール値を表すのに従来のon/offやyes/noというのが使えなくなっています。正確には

  • on、y、yes、+ ⇒ true
  • off、n、no、- ⇒ false

となっています。symfony 1.2から1.3/1.4へアップグレードするためのドキュメントのYAMLの項にも明記があります。こういう変更って意外と見逃しがちで、意外と原因究明に時間を取られるんですよね。symfony 1.0~1.2ユーザの方は気をつけましょう。

そのほかの参考になるリンク;


[symfony]app:routesコマンド

Posted under php,symfony by uechoco on 月曜日 21 12月 2009 at 23 : 35 : 18

Jobeet(Practical symfony)の5日目にあった、ルートのデバッグをするためのコマンドが、app:routesコマンドです。

./symfony app:routes application [name]

試しにJobeetの5日目の状態で「./symfony app:routes frontend」をたたくとこんな感じです。

TEXT:
  1. $ ./symfony app:routes frontend
  2. >> app       Current routes for application "frontend"
  3. Name          Method Pattern
  4. job           GET    /job.:sf_format
  5. job_new       GET    /job/new.:sf_format
  6. job_create    POST   /job.:sf_format
  7. job_edit      GET    /job/:id/edit.:sf_format
  8. job_update    PUT    /job/:id.:sf_format
  9. job_delete    DELETE /job/:id.:sf_format
  10. job_show      GET    /job/:id.:sf_format
  11. job_show_user GET    /job/:company_slug/:location_slug/:id/:position_slug
  12. homepage      ANY    /
  13. default_index ANY    /:module
  14. default       ANY    /:module/:action/*

お決まりのdefaultルートに対して、「./symfony app:routes frontend default」をたたくとこんな感じです。

TEXT:
  1. $ ./symfony app:routes frontend default
  2. >> app       Route "default" for application "frontend"
  3. Name         default
  4. Pattern      /:module/:action/*
  5. Class        sfRoute
  6. Defaults    
  7. Requirements action: '[^/\\.]+'
  8.              module: '[^/\\.]+'
  9. Options      cache: NULL
  10.              context: array ()
  11.              debug: true
  12.              default_action: 'index'
  13.              default_module: 'default'
  14.              extra_parameters_as_query_string: true
  15.              generate_shortest_url: true
  16.              lazy_routes_deserialize: false
  17.              load_configuration: false
  18.              logging: false
  19.              lookup_cache_dedicated_keys: false
  20.              segment_separators: array (0 => '/',1 => '.',)
  21.              segment_separators_regex: '(?:/|\\.)'
  22.              suffix: ''
  23.              text_regex: '.+?'
  24.              variable_content_regex: '[^/\\.]+'
  25.              variable_prefix_regex: '(?:\\:)'
  26.              variable_prefixes: array (0 => ':',)
  27.              variable_regex: '[\\w\\d_]+'
  28. Regex        #^
  29.              /(?P<module>[^/\.]+)
  30.              /(?P<action>[^/\.]+)
  31.              (?:(?:/(?P<_star>.*))?
  32.              )?
  33.              $#x
  34. Tokens       separator  array (0 => '/',1 => NULL,)
  35.              variable   array (0 => ':module',1 => 'module',)
  36.              separator  array (0 => '/',1 => NULL,)
  37.              variable   array (0 => ':action',1 => 'action',)
  38.              separator  array (0 => '/',1 => NULL,)
  39.              text       array (0 => '*',1 => NULL,)

そしてsfPropelRouteCollectionによる自動生成ルートの1つに対して「./symfony app:routes frontend job_edit」をたたくとこんな感じです。

TEXT:
  1. $ ./symfony app:routes frontend job_edit
  2. >> app       Route "job_edit" for application "frontend"
  3. Name         job_edit
  4. Pattern      /job/:id/edit.:sf_format
  5. Class        sfPropelRoute
  6. Defaults     action: 'edit'
  7.              module: 'job'
  8.              sf_format: 'html'
  9. Requirements id: '\\d+'
  10.              sf_format: '[^/\\.]+'
  11.              sf_method: array (0 => 'get',)
  12. Options      cache: NULL
  13.              context: array ()
  14.              debug: true
  15.              default_action: 'index'
  16.              default_module: 'default'
  17.              extra_parameters_as_query_string: true
  18.              generate_shortest_url: true
  19.              lazy_routes_deserialize: false
  20.              load_configuration: false
  21.              logging: false
  22.              lookup_cache_dedicated_keys: false
  23.              method: NULL
  24.              model: 'JobeetJobPeer'
  25.              object_model: 'JobeetJob'
  26.              segment_separators: array (0 => '/',1 => '.',)
  27.              segment_separators_regex: '(?:/|\\.)'
  28.              suffix: ''
  29.              text_regex: '.+?'
  30.              type: 'object'
  31.              variable_content_regex: '[^/\\.]+'
  32.              variable_prefix_regex: '(?:\\:)'
  33.              variable_prefixes: array (0 => ':',)
  34.              variable_regex: '[\\w\\d_]+'
  35. Regex        #^
  36.              /job
  37.              /(?P<id>\d+)
  38.              /edit
  39.              (?:\.(?P<sf_format>[^/\.]+)
  40.              )?
  41.              $#x
  42. Tokens       separator  array (0 => '/',1 => NULL,)
  43.              text       array (0 => 'job',1 => NULL,)
  44.              separator  array (0 => '/',1 => NULL,)
  45.              variable   array (0 => ':id',1 => 'id',)
  46.              separator  array (0 => '/',1 => NULL,)
  47.              text       array (0 => 'edit',1 => NULL,)
  48.              separator  array (0 => '.',1 => NULL,)
  49.              variable   array (0 => ':sf_format',1 => 'sf_format',)

あまりに細かすぎて謎な感じですが、私が使うとしたら、詳細表示の末尾のTokensセクションにて、セパレータ文字が有効かどうかを確認するくらいでしょうか。以前セパレータに「_」を使ったらセパレータとして認識されなかったことがあったので、悩んだ末に「.」に変更したのですが、もしかしたらそこで使えたのかもしれません。


[symfony]propel:build-model時のBaseモデルのタイムスタンプ変更を停止する

Posted under php,symfony by uechoco on 水曜日 16 12月 2009 at 04 : 36 : 20

symfonyでsubversionやgitなどのバージョン管理システムを使っているとき、symfonyコマンドのpropel:build-modelをした後に、モデルとPeerのベースクラスが根こそぎ更新されているのが気になっていませんか?

実はpropelがモデルとPeerのベースクラスのphpDocコメント内に、生成日時のタイムスタンプを入れているんです。このタイムスタンプがbuild-modelをするたびに書き変わるので、毎回バージョン管理システムの更新対象になってしまっています。

このタイムスタンプの生成を停止する方法がありました。

モデル再構築で余計な更新が発生しないようにする - aki77の日記

このブログに載っているように、config/propel.iniの中にある、propel.addTimeStampをfalseにすると、タイムスタンプの生成が停止します。この変更で、build-model後のsvn status/git statusの結果がだいぶ改善されました。これはぜひお勧めしたい設定です。

こういうような、symfonyの新規プロジェクトを立ち上げたら、始めにやっておくべきTODO集があるといいですね。


次ページへ »

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.