ラベル MAMP の投稿を表示しています。 すべての投稿を表示
ラベル MAMP の投稿を表示しています。 すべての投稿を表示

2011年8月30日火曜日

MAMP 環境で SQLAlchemy を使用する方法

前回のつづきです
相変わらず、メモ程度なので短いです

MAMP 環境ではソケット接続先がデフォルトと異なるため、接続時にその場所を指定する必要があるというのが前回でしたが、 Python 製の有名な OR マッパの1つである、SQLAlchemy を指定する場合はどのように設定するかが今回のエントリーとなります

指定方法は、以下のようにデータベース URL に対して、ソケット接続先をクエリパラメータに追加することとなります

データベース種別://ユーザ名:パスワード@接続先アドレス:ポート番号/データベース名?unix_socket=接続先ソケットのパス

具体的には以下の通りとなります

In [1]: from sqlalchemy import create_engine
In [2]: engine = create_engine("mysql://root:root@localhost/mysql?unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock")
In [3]: engine.execute("select 1").scalar()
Out [3]: 1L

以上で、 MAMP 環境下で SQLAlchemy が無事使えるようになるかと思います

2011年8月27日土曜日

MAMP 環境で mysql-python をインストールする方法

ちょこっとハマったのでメモとして…
元ネタはコチラ

以降は、 MAMPHomebrew がインストールされていることが前提となります
MAMP 、 Homebrew のインストール等の詳細に関しては下記過去記事も参照ください

Mac OS X での PHP 開発環境(MAMP編)
MacPorts から Homebrew へ移りました

なお、今回は MAMP 2.0 、 Homebrew 0.8 を使用しました

今回ハマった要因は、 mysql-python をビルドする際に必要なヘッダファイルが MAMP には含まれないということでした
( MAMP とは別に) MySQL 本体をダウンロードし、それを利用するなどの方法はあるのですが、さすがに面倒なので、 Homebrew にある、 "mysql-connector-c" という C 言語用接続 API のみのパッケージを利用します

$ brew install mysql-connector-c

Homebrew でのインストールが終了したら、
(下記では、mysql-python のインストールに pip を使用しています)

$ pip install mysql-python

以上で無事にインストールが完了するかとおもいます

次に実際に接続テストを行います
(テストには ipython を使用しました)

In [1]: import MySQLdb
In [2]: db = MySQLdb.connect(unix_socket="/Applications/MAMP/tmp/mysql/mysql.sock", user="root", passwd="root", db="mysql", charset="utf8")

上記コードの実行でエラーが発生しなければ、接続テスト完了です
この際に注意が必要なのは、 MAMP を利用する場合、接続ソケットのパスがデフォルトでは "/Applications/MAMP/tmp/mysql/mysql.sock" となるため、接続時にこれを設定しなければならないということです
(設定しない場合は、 "/tmp/mysql.sock" に接続しようとして、エラーとなります)

以上で、 mysql-python のインストールは無事完了となります

2009年8月30日日曜日

NetBeans 6.7.1 で PHPUnit テストを試す

NetBeans 6.7 で新たにサポートされた PHPUnit の使用方法を紹介します
元ネタはコチラです

以降は、 PHP、およびPHPUnit が既にご使用の環境で設定済みであることを前提としています
MAMP を使用した PHP 実行環境の設定方法はコチラ、MAMP 環境下での PHPUnit の設定方法はコチラを参照ください

NetBeans から PHPUnit を使用するには、まず「オプション」画面にて phpunit コマンドへのパスを設定します
「オプション」画面の「PHP」タブをクリックし、 PHP の設定画面を表示します

画面内の "単体スクリプト" 、 "PHPUnit スクリプト" に phpunit コマンドへのパスを設定します
(例では "/Applications/MAMP/bin/php5/bin/phpunit.php" としていますが、各自の環境に合わせてください)

NetBeans の環境設定は以上です

次に、 PHPUnit にて単体テストの生成する対象となるプログラムを書きます
まず、"Calculator" という名前の "PHP アプリケーション" プロジェクトを作ります
そのプロジェクトの中に、 "Calculator.php" という名前の "PHPクラス" ファイルを生成します
中身は以下のようになります
<?php
class Calculator {
public function add($a, $b) {
return $a + $b;
}
?>

上記のソースコードにコメントブロックとテストケースを追加します
追加した結果は以下のようになります
<?php
class Calculator {
/**
* @assert (0, 0) == 0
* @assert (0, 1) == 1
* @assert (1, 0) == 1
* @assert (1, 1) == 2
* @assert (1, 2) == 4
*/
public function add($a, $b) {
return $a + $b;
}
}
?>

「ファイル」ウィンドウを開き、テストケース用ディレクトリを作成します
プロジェクトのルートディレクトリを右クリックし、表示されたメニューより「新規 > フォルダ...」を選択します

「新規フォルダ」ウィンドウにて、任意のフォルダ名を付け、「完了」ボタンをクリックします
(ここでは例として、"tests" と設定しています)

次に「プロジェクト」ウィンドウ内の、 "Calculator.php" を右クリックします


表示されたメニューより、 「ツール > PHPUnit テストを作成」 を選択すると、テストファイルを置くディレクトリを選択するウィンドウが表示されます

「参照...」ボタンをクリックし、先ほど作成したディレクトリを設定します

選択後、「了解」ボタンをクリックします

phpunit コマンドが実行され、プロジェクト内に記述されているテストケースをもとに、テストファイルが生成されます


「プロジェクト」ウィンドウより、"Calculator.php" ファイルを右クリックし、表示されるメニューより「テスト」を実行します
(または、生成されたテストファイル ("CalculatorTest.php") を「実行」しても同じ動作となります)

実行後、「テスト結果」ウィンドウが開き、テストの結果が表示されます

先に記述したテストケースの下記行に誤りがあるため、テスト結果は1件、エラーとなっています
@assert (1, 2) == 4 //正しくは "3" となります

以下のようにテストファイルを修正して再実行すると、テストケースはすべて成功します
    /**
* Generated from @assert (1, 2) == 3.
*/
public function testAdd5()
{
$this->assertEquals(
3,
$this->object->add(1, 2)
);
}


以上が、PHPUnit の簡単な使用方法となります
次回は、この PHPUnit を使ったコードカバレッジの方法を紹介したいと思います

2009年8月5日水曜日

MAMP で PHPUnit を使う

NetBeans 6.7 で新たにサポートされた PHPUnit を使用するため、MAMP 環境に PHPUnit をインストールする方法を紹介します
元ネタはコチラ
なお、以降のやり方は次期メジャーリリースとなる、 PHPUnit 4.x(2010年リリース予定)では使えませんので、ご注意ください

以降は MAMP がインストールされていることを前提に進めます
未インストールの方は、コチラを参照し、準備してください
(以降、インストール先はデフォルトの "/Applications/MAMP" として説明します)

まず、最新安定版の PHPUnit をコチラからダウンロードします
09/08/05 時点では 3.3.17 が最新バージョンですので、以降の説明はこのバージョンにて行います
(使用するバージョンに応じ、適時読み替えてください)

任意の場所へダウンロード後、そのファイルを解凍してください
解凍後のフォルダに含まれる、 "PHPUnit" フォルダを "/Applications/MAMP/bin/PHP5/lib/php" 以下へコピーしてください
また、上記 "PHPUnit" フォルダと同じ階層にある "phpunit.php" を "/Applications/MAMP/bin/PHP5/bin" 以下にコピーします
(上記バージョンでは "PHPUnit-3.3.17/PHPUnit-3.3.17" 以下になります)

コピーしたフォルダ内の "PHPUnit/Util/Fileloader.php" を編集します
このファイル内の
@php_bin@
をすべて
/Applications/MAMP/bin/php5/bin/php
へ置換します

次に、コピーした "phpunit.php" を編集します
ファイル1行目の
#!/usr/bin/env php
#!/Applications/MAMP/bin/php5/bin/php
へ変更します
また、 "PHPUnit/Util/Fileloader.php" と同様に、
@php_bin@
をすべて
/Applications/MAMP/bin/php5/bin/php
へ置換します

以上で PHPUnit のインストールは完了です
なお、今回は MAMP 環境内にインストールしていますが、ターミナルなどのコマンドライン上からも実行したい場合は "/Applications/MAMP/bin/php5/bin" 以下ではなく、 "/usr/local/bin" などに "phpunit.php" コピーし、実行権限を設定することで利用可能になります
次回は NetBeans 6.7 上での PHPUnit の利用方法を紹介したいと思います

2008年9月18日木曜日

Mac OS X での PHP 開発環境(MAMP編)

Mac OS X Leopard(10.5.x)では標準でApacheやPHPの環境はそろっているのですが、動作させるまでの設定が面倒です
Apache、PHPなどの細かいバージョンの指定がなければ、MAMPというアプリケーションを使用するのが簡単かと思います
MAMPはApache、MySQL、PHPの同梱パッケージで、インストール後はすぐにそれらを使用することができます

コチラより最新のパッケージをダウンロードしてインストールします
(08/09/18現在では1.7.2)
なお、ダウンロードしたパッケージには有料版であるProも含まれていますが、今回は無料版のMAMPを使用しています


続いてNetBeansのデバッガ機能を使用するため、PHPのデバッグモジュールのxdebugをインストールします
インストールにはKomodo Remote Debugging Packagesを利用します
(もちろん、本家からソースコードをダウンロード、ビルドして利用することもできます)
使用環境に併せた最新バージョンのPHP Remote Debuggingをダウンロードします
ダウンロード後、パッケージを解凍すると、PHPの各バージョンに対応したモジュールが展開されます

今回利用するMAMPにはPHP4.4.8/5.2.6が含まれていますので、使用するバージョンに併せて4.4、または5.2フォルダにある"xdebug.so"をコピーしてください
(以降、PHP5.2.6と対応する5.2用のxdebugにて説明します.PHP4を利用する際は適時に読み替えてください)
コピーしたファイルを"/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/"以下に置きます

次に"/Applications/MAMP/conf/php5"以下の"php.ini"を編集します
以下の設定をファイルに追加してください
(設定は必要に応じて変更してください)
[xdebug]
zend_extension = /Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
xdebug.remote_enable = On
xdebug.remote_handler = dbgp
xdebug.remote_mode = req
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.idekey =
xdebug.profiler_enable = On
xdebug.profiler_output_dir = "/Applications/MAMP/tmp/xdebug/"


設定後、MAMPアイコンをダブルクリックし、起動します
表示されたMAMP管理ウィンドウの「環境設定」ボタンをクリックします
「PHP」タブをクリックし、「機能拡張」にある「Zend Optimizer」のチェックをはずします
(Zend Optimizerが有効な場合、デバッグが正常に動きません)
その他、ポート番号やドキュメントルートなどは必要に応じ、変更してください
(今回の説明ではデフォルトのままで使用しています)

「サーバを停止」、「サーバを起動」とクリックし、サーバを再起動したのち、「スタートページを開く」ボタンをクリックしてブラウザを開きます
画面上部のメニューより「phpinfo」のメニューをクリックし、各種設定を確認します
また、ページ後半に"xdebug"の項目があることを確認してください
(ブラウザの検索ウィンドウにて"xdebug"と入力して探すと簡単に見つけられると思います)
"xdebug"の項目がない場合は正常にインストールできていません
インストール先や上記設定の確認を行ってください

以上でPHPに関する設定は完了です
デフォルトの設定でドキュメントルートは"/Applications/MAMP/htdocs"となっていますので、テストとして以下の内容でindex.phpを作成します
<?="Hello PHP!"?>

"http://localhost:8888/"をブラウザで開くと、以下の画面が表示されるかとおもいます


今後開発を行う場合、このドキュメントルートにファイルを配備します
環境の準備ができましたので、次回は NetBeans の PHP サポートを利用した開発を紹介したいと思います