Entityの一覧を取得する方法が分からなくて調べたのでメモ。
もっとスマートなやり方があるのかしらん。

$em = $this->getManater();
$metadata_array = $em->getMetadataFactory()->getAllMetadata();
foreach($metadata_array as $metadata){
  $entity_name = $metadata->getName();
}

これでエンティティ名が取れる。あとは、ロードを行うのであれば普通に

$em->getRepoisitory($entity_name)->findAll();

とか、

 $refl_class = new ReflectionClass($entity_name);
 $entity = $refl_class->newInstance();

とか色々できる。

普段の開発はMacbookProでコーディング→Linuxサーバにデプロイ、
という流れでやっているのだけど、ある日突然
php app/console cache:clear –env=prod これがエラーで失敗するようになった。

Linuxサーバで出たエラーの内容を見てみると、/Users/(中略)/app/cache/prod/appProdProjectContainer.php
にアクセスできないと出てるけど…これMac環境のパスじゃん。

なんでこんなパスを見に行くようになってしまったかは分かってないのだけれども、 app/cache/prod/appProdProjectContainer.php というファイルは自動生成されるファイルなので さくっと削除して再度キャッシュクリアを実行。今度は成功。

しかし問題が解決したとはいえ、根本原因がわからないままで気持ち悪い。

新しいMacにParallels Desktopをインストールしてアクティベーションしようとしたら、
なにやらアクティベーションできる回数の上限に達したというエラーが出てアクティベーションに失敗した。
You have reached the maximum number of activations 云々と言われているけど、
そもそもアクティベーション回数の上限なんてあったのかよ、という感じ。

Parallelsのサポートページを見ると、ライセンス買ってね、とあるが
マシンの引っ越しで買い直しってこともなかろう…ということで、
Parallelsのサポートページの奥深くにある問い合わせフォームから以下の内容を伝えた。
・マシンの引っ越しをしたい
・しかし、アクティベーション回数の上限に達したというエラーが出る
・前のマシンからはParallels Desktopをアンインストール済み

そしたら数時間後にメールで連絡が来て、「状況は理解したのでロックを解除したよ」とのこと。
再度アクティベーションしたら、今度は無事アクティベーションできましたとさ。

しかし、Parallels Desktopの引っ越しは何度かやってるけど、ロックされたのは今回が初めて。
ロックされる基準が謎ですなあ…

Intel Power Gadgetなるソフトを発見した。
Intel謹製の、CPU及びGPUの消費電力や動作クロック、CPU温度を表示してくれるソフト。
Windows,Mac,Linux版が提供されている。

Mac版の見た目はこんな感じ。

APIもあるらしい。ほほー。

mac上にsymfony2の開発環境を作る

symfony2を使うプロジェクトが複数あるのでセットアップする。
他のメンバーも同じ環境を作って貰うので、手順をメモメモ。

mariaDB

流行にのって(?)mysqlじゃなくてこっちを。

brew install mariadb

Apache

2.2.27を使います。

brew tap homebrew/apache
brew install httpd22 

ちなみに、最初

httpd22 --with-brewed-apr --with-brewed-openssl --with-privileged-ports

でインストールしたら、php5のso読み込まるとapacheが起動できなくなった。 (どれが問題なのかは切り分けできていない)

redis

今回のプロジェクトではmysqlのキャッシュとして使います。
次のプロジェクトはredisをメインDBにするかも?

brew install redis

php

いよいよphpインストール。
でもその前にlibyamlを。必須では無いが、プロジェクト内でphpからyamlをいじるので。

brew install libyaml

続いてphp本体、バージョンは5.4。

brew tap homebrew/homebrew-php
brew install php54 --with-apache
brew install php54-apc php54-intl php54-xdebug php54-yaml php54-redis php54-lz4 php54-msgpack
brew install phpunit

が、ここでzlibインストール時にエラー発生

==> Downloading http://zlib.net/zlib-1.2.8.tar.gz
Already downloaded: /Library/Caches/Homebrew/zlib-1.2.8.tar.gz
Error: SHA1 mismatch
Expected: a4d316c404ff54ca545ea71a27af7dbc29817088
Actual: 269234641aa81d39d88c58df9fb41f5bafb6153e
Archive: /Library/Caches/Homebrew/zlib-1.2.8.tar.gz
To retry an incomplete download, remove the file above.

brew SHA1 mismatchでググると、brew updateすると直るよ、というのが出てくるものの
homebrewインストールしたばかりなのでbrew updateしても「最新だよ」と言われてしまう。

/Library/Caches/Homebrew/zlib-1.2.8.tar.gzのダウンロードが上手くいってないのかな?
と思って見てみると、サイズがやたら小さい上に中身がhtmlになっている??

…外部から社内に接続する際のVPNクライアントに付属している
ファイアウォール機能がダウンロードをブロックしていたというオチでした。 ファイアウォール機能をオフにして/Library/Caches/Homebrew/zlib-1.2.8.tar.gzを削除し、再実行。

homebrewでphp54-yamlとかを入れると、pecl install YAMLとかやらなくていいのね。

composer

symfony2で使うので。
もうちょっと軽くなったらいいのになあ。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

phing

ビルド用にphingをインストールする。これはhomebrewでは入らないぽい。

pear channel-discover pear.phing.info
pear install phing/phing

なお、最初に実行した時は以下のようなエラーが出た。

could not create lock file: fopen(/usr/local/Cellar/php54/5.4.31/lib/php/.lock): failed to open stream: Permission denied

と怒られたので見てみると、権限が

r--r--r--

こんな感じの.lockファイルが既に居座っていた…削除して再実行したらうまくいった。

symfony2

最後にsymfony2の登場。 シンプルに使うだけならここまで色々いらないのだろうけど、 必要なものを順序立てて入れていったらこんなに長くなってしまった。

公式の手順に従って、

composer create-project symfony/framework-standard-edition path/ "2.3.*"

これでようやくおしまい。

Github Pagesはじめました

開発用のmacを新規セットアップするタイミングにあわせて、
備忘録も兼ねて開設。

octopress+Github Pagesのセットアップ手順はあちこちにあるので割愛。