2012年01月 / 12月≪ 12345678910111213141516171819202122232425262728293031≫02月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2012.01.30 (Mon)

EC-CUBEでPCか携帯かスマホか判断

EC-CUBEでPCか携帯かスマホか判断するにはSC_Display_Ex::detectDevice()を使う。
定数で
DEVICE_TYPE_MOBILE
DEVICE_TYPE_SMARTPHONE
DEVICE_TYPE_PC
が設定されているはずなのでそれが返る。
if(SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE){
SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, "", false,"携帯には対応してません");
}

みたいな感じで。
スポンサーサイト


 |  18:30  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

2012.01.24 (Tue)

いつもPEARで時間を食う

なのでメモ。

windows vista+xamppでpear.batのあるところにパス通してる環境。
pear.batにパスが通ってなければpear.batを直接指定して打てばいいんじゃない。

とりあえずヘルプはhelp

c:\>pear help
Commands:
build Build an Extension From C Source
bundle Unpacks a Pecl Package
...
こんな感じでダーッと出る
各コマンドのさらに詳しいオプションとかは指定すれば見れる
c:\>pear help list
pear list [options]
If invoked without parameters, this command lists the PEAR packages
installed in your php_dir (C:\xampp\php\pear). With a parameter, it
lists the files in a package.

Options:
-c CHAN, --channel=CHAN
list installed packages from this channel
-a, --allchannels
list installed packages from all channels
-i, --channelinfo
output fully channel-aware data, even on failure

PHPUnitをインストールしたいのでマニュアル見つつ
c:\>pear install --alldeps pear.phpunit.de/PHPUnit
Attempting to discover channel "pear.phpunit.de"...
downloading channel.xml ...
Starting to download channel.xml (804 bytes)
....done: 804 bytes
Auto-discovered channel "pear.phpunit.de", alias "phpunit", adding to registry
No releases available for package "pear.phpunit.de/PHPUnit"
install failed
パッケージが見つからないみたいな感じでインストールできなかっただと?
ちゃんとネットつながってるし何言ってんの。
チャンネルが見れるかパッケージがあるか確認してみる。

c:\>pear remote-list -c phpunit
CHANNEL PHPUNIT AVAILABLE PACKAGES:
===================================
PACKAGE VERSIO
DbUnit 1.1.1
File_Iterator 1.3.1
Object_Freezer 1.0.0
PHPUnit 3.6.9
PHPUnit_MockObject 1.1.1
PHPUnit_Selenium 1.2.1
PHPUnit_SkeletonGenerator 1.0.0
PHPUnit_Story 1.0.0
PHPUnit_TestListener_DBUS 1.0.0
PHPUnit_TestListener_XHProf -n/a-
PHPUnit_TicketListener_Fogbugz 1.0.0
PHPUnit_TicketListener_GitHub 1.0.0
PHPUnit_TicketListener_GoogleCode 1.0.0
PHPUnit_TicketListener_Trac 1.0.0
PHP_CodeBrowser 1.0.2
PHP_CodeCoverage 1.1.1
PHP_Invoker 1.1.0
PHP_Timer 1.0.2
PHP_TokenStream 1.1.2
Text_Template 1.1.1
bytekit 1.1.2
phpcov 1.0.0
phpcpd 1.3.5
phpdcd -n/a-
phploc 1.6.4
ppw 1.0.4
test_helpers 1.1.0

全然ある。ぐぐったらキャッシュ消せば直ったりするかもってことで消した。
c:\>pear clear-cache
reading directory C:\Users\ueno\AppData\Local\Temp\pear\cache
10 cache entries cleared
も一回。
c:\>pear install --alldeps pear.phpunit.de/PHPUnit
Attempting to discover channel "pear.phpunit.de"...
downloading channel.xml ...
Starting to download channel.xml (804 bytes)
....done: 804 bytes
Auto-discovered channel "pear.phpunit.de", alias "phpunit", adding to registry
phpunit/PHP_Invoker requires PHP extension "pcntl"
downloading PHPUnit-3.6.9.tgz ...
Starting to download PHPUnit-3.6.9.tgz (118,584 bytes)
...done: 118,584 bytes
downloading File_Iterator-1.3.1.tgz ...
Starting to download File_Iterator-1.3.1.tgz (5,157 bytes)
...done: 5,157 bytes
downloading Text_Template-1.1.1.tgz ...
Starting to download Text_Template-1.1.1.tgz (3,622 bytes)
...done: 3,622 bytes
downloading PHP_CodeCoverage-1.1.1.tgz ...
Starting to download PHP_CodeCoverage-1.1.1.tgz (132,339 bytes)
...done: 132,339 bytes
downloading PHP_Timer-1.0.2.tgz ...
Starting to download PHP_Timer-1.0.2.tgz (3,686 bytes)
...done: 3,686 bytes
downloading PHPUnit_MockObject-1.1.1.tgz ...
Starting to download PHPUnit_MockObject-1.1.1.tgz (19,897 bytes)
...done: 19,897 bytes
downloading PHP_TokenStream-1.1.2.tgz ...
Starting to download PHP_TokenStream-1.1.2.tgz (9,797 bytes)
...done: 9,797 bytes
install ok: channel://pear.phpunit.de/File_Iterator-1.3.1
install ok: channel://pear.phpunit.de/Text_Template-1.1.1
install ok: channel://pear.phpunit.de/PHP_Timer-1.0.2
install ok: channel://pear.phpunit.de/PHP_TokenStream-1.1.2
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.1.1
install ok: channel://pear.phpunit.de/PHPUnit_MockObject-1.1.1
install ok: channel://pear.phpunit.de/PHPUnit-3.6.9

今度は無事入ったよかった。phpunitコマンドが使えるようになってた
c:\>phpunit --version
PHPUnit 3.6.9 by Sebastian Bergmann.

テストが動くか確認
PHPUnit 用のテストの書き方の一番上の奴をそのままコピペして動かしてみる。
C:\xampp\php\tmp\StackTest.phpとして保存

<?php
class StackTest extends PHPUnit_Framework_TestCase
{
public function testPushAndPop()
{
$stack = array();
$this->assertEquals(0, count($stack));

array_push($stack, 'foo');
$this->assertEquals('foo', $stack[count($stack)-1]);
$this->assertEquals(1, count($stack));

$this->assertEquals('foo', array_pop($stack));
$this->assertEquals(0, count($stack));
}
}
?>

実行

c:\>phpunit C:\xampp\php\tmp\stacktest.php
PHPUnit 3.6.9 by Sebastian Bergmann.

.

Time: 0 seconds, Memory: 3.25Mb

OK (1 test, 5 assertions)

無事動いた。時間食ったなあ。たまにしか使わないから、毎回使い方調べるのに時間がかかる・・・


 |  18:33  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

2012.01.22 (Sun)

EC-CUBEでエラーページを表示する

既存のエラーページを利用して、任意のエラーメッセージ表示させたいとき

SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, "", false,"指定のデータが見つかりません。とか。");

第一引数にFREE_ERROR_MSGを渡せば引数で渡したメッセージが出る。
引数2個目はセッションオブジェクト?まだよくわからん。
3個目はtrueだと画面下部のボタンが「トップページへ」になり、falseだと「戻る」ボタンになる。
4個目はFREE_ERROR_MSGの場合の表示するメッセージ

第一引数を他の定数にすれば既存のエラーメッセージも使えるし。
既に定義されてるエラーメッセージを確認するには
data/class/pages/error/LC_Page_Error.phpのaction()を見たらいい。

sfDispSiteError内でexitを呼んでるので、sfDispSiteErrorを呼んだらexitを記述しなくていい。

EC-CUBEはドキュメントが少ないのでメモしないと忘れる・・・


 |  16:47  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑

2012.01.07 (Sat)

CakePHPでajaxなのに$this->RequestHandler->isAjax()がfalseになる

CakePHPで、IEから$.ajax(jquery)でコントローラ呼び出したのに、コントローラ側で
$this->RequestHandler->isAjax()
がなぜかfalseになってしまう・・・なぜに・・・。
firefoxだと問題なかったんだが。

$.ajax({type:"GET"...})でGETでアクセスしてたので、まさかとおもって
$.ajax({type:"POST"...})とPOSTに変えてみたら
$this->RequestHandler->isAjax()
が無事trueになった。
以後気を付ける用メモ。


 |  01:25  |  PHP  |  トラックバック(0)  |  コメント(0)  |  Top↑
 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。