2012年11月30日金曜日

symfonyでフロントコントローラーを非表示


symfonyでフロントコントローラー(index.php)を非表示にする方法をメモ

下記を参考にしました
http://5a3i.blogspot.jp/2012/04/symfonyindexphpurl.html


apps/(アプリケーション)/config/settings.yml
--------------
prod:
  .settings:
    no_script_name:         true   # trueで非表示, falseで表示
--------------

最初に作ったアプリはデフォルトでtrue
他はfalseとなるっぽ

index.phpを別のアプリに差し替えるとき用

2012年11月27日火曜日

JenkinsでPHPビルド用Pearパッケージインストール


Jenkins用PHPテンプレートを用意しようとしたら
Pearの依存関連でWarningが出まくったので
インストール手順をメモ書き

※とりあえず以下で様子見

CentOS5
PHP5.3.18

・PEARをアップグレードする
[root@centos5 ~]# pear upgrade pear

・チャンネルをアップデートする
[root@centos5 ~]# pear update-channels


■PHP_Depend
[root@centos5 ~]# pear channel-discover pear.pdepend.org
[root@centos5 ~]# pear install --alldeps pdepend/PHP_Depend
install ok: channel://pear.pdepend.org/PHP_Depend-1.1.0

■PHP_PMD
[root@centos5 ~]# pear channel-discover pear.phpmd.org
[root@centos5 ~]# pear install phpmd/PHP_PMD
install ok: channel://pear.phpmd.org/PHP_PMD-1.4.0

■phpUnit
[root@centos5 ~]# pear channel-discover pear.phpunit.de
[root@centos5 ~]# pear channel-discover components.ez.no
[root@centos5 ~]# pear channel-discover pear.symfony.com
[root@centos5 ~]# pear channel-discover pear.netpirates.net

[root@centos5 ~]# pear install --alldeps phpunit/phpcpd
install ok: channel://pear.phpunit.de/PHP_Timer-1.0.4
install ok: channel://components.ez.no/Base-1.8
install ok: channel://pear.netpirates.net/fDOMDocument-1.3.2
install ok: channel://pear.symfony.com/Finder-2.1.3
install ok: channel://components.ez.no/ConsoleTools-1.6.1
install ok: channel://pear.phpunit.de/FinderFacade-1.0.5
install ok: channel://pear.phpunit.de/phpcpd-1.4.0

[root@centos5 ~]# pear install --alldeps phpunit/phploc
install ok: channel://pear.phpunit.de/phploc-1.7.4

[root@centos5 ~]# pear install --alldeps phpunit/PHPUnit
install ok: channel://pear.phpunit.de/File_Iterator-1.3.3
install ok: channel://pear.phpunit.de/Text_Template-1.1.4
install ok: channel://pear.symfony.com/Yaml-2.1.3
install ok: channel://pear.phpunit.de/PHP_TokenStream-1.1.5
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.2.6
install ok: channel://pear.phpunit.de/PHPUnit_MockObject-1.2.2
install ok: channel://pear.phpunit.de/PHPUnit-3.7.9


[root@centos5 ~]# pear install --alldeps pear/Net_Growl
install ok: channel://pear.php.net/Net_Growl-2.6.0

[root@centos5 ~]# pear install -n pear/XML_Parser
install ok: channel://pear.php.net/XML_Parser-1.3.4

[root@centos5 ~]# pear install -n pear/XML_Serializer-0.20.2
install ok: channel://pear.php.net/XML_Serializer-0.20.2

[root@centos5 ~]# pear install -n pear/PEAR_PackageFileManager_Plugins
install ok: channel://pear.php.net/PEAR_PackageFileManager_Plugins-1.0.2

[root@centos5 ~]# pear install -n pear/PEAR_PackageFileManager2
install ok: channel://pear.php.net/PEAR_PackageFileManager2-1.0.2

[root@centos5 ~]# pear install -n pear/PEAR_PackageFileManager
install ok: channel://pear.php.net/PEAR_PackageFileManager-1.7.0



■phpdocumentor
[root@centos5 ~]# pear channel-discover pear.phpdoc.org
[root@centos5 ~]# pear install pear/PhpDocumentor
install ok: channel://pear.php.net/PhpDocumentor-1.4.4


■PHP_CodeSniffer
[root@centos5 ~]# pear install PHP_CodeSniffer
install ok: channel://pear.php.net/PHP_CodeSniffer-1.4.2


■PHP_CodeBrowser
[root@centos5 ~]# pear install Text_Highlighter-0.7.3
install ok: channel://pear.php.net/Text_Highlighter-0.7.3

[root@centos5 ~]# pear install phpunit/PHP_CodeBrowser
install ok: channel://pear.php.net/Console_CommandLine-1.2.0
install ok: channel://pear.php.net/Log-1.12.7
install ok: channel://pear.phpunit.de/PHP_CodeBrowser-1.0.2


■phing
[root@centos5 ~]# pear channel-discover pear.phing.info

[root@centos5 ~]# pear install VersionControl_SVN-0.5.0
install ok: channel://pear.php.net/VersionControl_SVN-0.5.0

[root@centos5 ~]# pear install VersionControl_Git-0.4.4
install ok: channel://pear.php.net/VersionControl_Git-0.4.4

[root@centos5 ~]# pear install Services_Amazon_S3-0.4.0
install ok: channel://pear.php.net/Crypt_HMAC2-1.0.0
install ok: channel://pear.php.net/Net_URL2-2.0.0
install ok: channel://pear.php.net/HTTP_Request2-2.1.1
install ok: channel://pear.php.net/Services_Amazon_S3-0.4.0

[root@centos5 ~]# pear install phing/phingdocs
install ok: channel://pear.phing.info/phingdocs-2.4.13

[root@centos5 ~]# pear install phing/phing
install ok: channel://pear.phing.info/phing-2.4.13

2011年1月11日火曜日

PHPの浮動小数点処理に無限ループのバグ

PHPの浮動小数点処理に無限ループのバグ
http://slashdot.jp/developers/11/01/08/0527259.shtml

PHP5.2および5.3。
文字列"2.2250738585072011e-308"(304桁の10進数表記でも同様)からdoubleへの変換を、
PHPの32ビットプロセス上で実行した場合に無限ループする。。。

パッチ

メモ:addとaddAND(addOr)の違い

Criteriaでadd指定で条件を指定した場合
同一カラムに指定されていた条件が上書きされる

$c = new Criteria();
$c->add(TablePeer::COLUMN_ALPHA, 'hoge');
$c->add(TablePeer::COLUMN_BETA, 'piyo');
$c->add(TablePeer::COLUMN_BETA, 'foo');

WHERE column_alpha = 'hoge'
AND column_beta = 'foo'

※「column_beta = 'piyo'」の条件が「column_beta = 'foo'」で上書きされる


-------------------------------------------
addAnd(addOr)を使用すると指定されていた条件に対して追加される

$c = new Criteria();
$c->add(TablePeer::COLUMN_ALPHA, 'hoge');
$c->add(TablePeer::COLUMN_BETA, 'piyo');
$c->addAnd(TablePeer::COLUMN_BETA, 'foo');

WHERE column_alpha = 'hoge'
AND column_beta = 'piyo'
AND column_beta = 'foo'

※「column_beta = 'piyo'」の条件に「column_beta = 'foo'」が追加される

2010年11月11日木曜日

PL/pgSQLのソースコード確認方法

PostgreSQLに登録したPL/pgSQLの内容を確認する方法

-----------------------------------------
SELECT routine_definition
FROM information_schema.routines
WHERE routine_name = '(関数名)';
-----------------------------------------

(例)
=#
CREATE OR REPLACE FUNCTION hogehoge(INTEGER) RETURNS VOID AS $$
DECLARE

BEGIN

END;
$$ LANGUAGE plpgsql;

=#
SELECT routine_definition
FROM information_schema.routines
WHERE routine_name = 'hogehoge'

-----------------------------------------

参考URL

2010年10月21日木曜日

propelでdoUpdate

Propelで複数行を条件指定でまとめて更新する場合

UPDATE (テーブル) SET カラム = 値 WHERE (条件)
をPropelで書くときのメモ

-------------------------------------------------

$update = new Criteria();
$where = new Criteria();

// 更新する内容を設定
$update->add(カラム名1, 値);
$update->add(カラム名2, 値);

// 更新対象を抽出するWhere句
$where->addAnd(カラム名3, 値);
$where->addAnd(カラム名4, 値);

// コネクションを取得
$con = Propel::getConnection(DB名);

// 更新処理
BasePeer::doUpdate($where, $update, $con);


-------------------------------------------------

Update テーブル
SET カラム名1 = 値, カラム名2 = 値
WHERE カラム名3 = 値
AND カラム名4 = 値

参考URL

2010年9月9日木曜日

Unable to get sequence id

symfony に Unable to get sequence id. と言われた、そんなとき
http://unicus.jp/wp/archives/43

symfony1.4 + Postgresqlで発生

lib/vendor/propel-generator/classes/propel/engine/platform/PgsqlPlatform.php
getSequenceName が32のため発生している