「プログラミングPHP 第2版」p369の誤植
Posted 7月 20, 2013
on:プログラミングPHP 第2版 の「14章PHPの拡張」に誤植があったのでメモしておきます。
#ただ、第3版(まだ日本語版はない)だと該当の章自体がなくなってるみたいですね。
p369の「14.7 パラメータの処理」で以下のPHP拡張のコードがあります。
long l;
char *s;
ints_len;
doubld d = 0.0;
if (zend_parse_parameters(ZEND_NUM_AGRS() TSRMLS_CC, “ls|d”, &l, &s, &s_len)
== FAILURE) return;
このように作った関数をPHP側から
add_item($num, $desc, $price);
のように呼ぶと第3引数に指定した値が、PHP拡張のコード側に渡せると書いてあります。
ですが、実際には
long l;
char *s;
ints_len;
doubld d = 0.0;
if (zend_parse_parameters(ZEND_NUM_AGRS() TSRMLS_CC, “ls|d”, &l, &s, &s_len, &d)
== FAILURE) return;
のようにしないと渡せないです。
symfonyをインストール
Posted 3月 24, 2012
on:前回作成したvagrantの環境の上で
「blogチュートリアル | Symfony2 Blog チュートリアル」を
試してみます。
Symfony2のインストール
$ cd /var/www/
$ sudo chown vagrant.vagrant .
$ wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.11.tgz
$ tar xzf download\?v\=Symfony_Standard_Vendors_2.0.11.tgz
これで「http://localhost/Symfony/web/config.php」にアクセスする。
そうすると「This script is only accessible from localhost.」というメッセージが表示されてアクセスができない。
今回は「/var/www/Symfony/web/config.php」を直接編集してこれを回避する
header('HTTP/1.0 403 Forbidden');
exit('This script is only accessible from localhost.');
となっているところを
# header('HTTP/1.0 403 Forbidden');
# exit('This script is only accessible from localhost.');
に書き換えればとりあえず、先ほどのURLに正しく表示できるようになる。
ここでいろいろと変更が求められるので、今回は以下のコマンドで対応しました。
$ chmod o+wx /var/www/Symfony/app/cache/ /var/www/Symfony/app/logs/
$ sudo apt-get install php5-sqlite sqlite3
$ sudo sed -i -e ‘/;date.timezone/ c date.timezone=Asia/Tokyo’ /etc/php5/apache2/php.ini
$ sudo service apache2 restart
ここまでで重要な変更にはすべて対応できます。ついでに推奨の設定も以下のコマンドで対応しておきます
$ sudo apt-get install php-apc php5-intl
$ sudo sed -i -e '/short_open_tag/ c short_open_tag = off' /etc/php5/apache2/php.ini
$ sudo service apache2 restart
これでひとまずSymfonyのインストールは完了です。
PHPの開発環境構築
Posted 3月 17, 2012
on:vagrantでphpの開発環境を作ってみました。
vagrantで仮想マシンを作る
$ vagrant -v
Vagrant version 1.0.1
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
$ vagrant init # 初期設定ファイルの生成
$ emacs Vagrantfile
以下のように編集します。
config.vm.box = "lucid32" # baseをlucid32に変更する
config.vm.forward_port 80, 8080 # コメントアウトを解除
$ vagrant up # 仮想マシンの起動
$ vagrant ssh # 仮想マシンへSSH接続
PHPのパッケージをそろえる
とりあえず必ず必要そうなものだけ入れておきます。
$ apt-get update
$ apt-get upgrade
$ apt-get install php5-common libapache2-mod-php5 php5-cli
$ sudo apt-get install php-pear
php5-dev
Apacheの設定ファイルを用意します。
これからPHP用の設定が増えてくるかも知れないので、defaultの設定をコピーして使用しています。
$ sudo a2dissite default
$ cd /etc/apache2/sites-available
$ sudo cp default php
$ sudo a2ensite php
$ sudo /etc/init.d/apache2 reload
次にPHPが正しく動作しているかを調べます
$ cd /usr/lib/cgi-bin/
$ sudo chown vagrant.vagrant .
$ cat > info.php
<?php
phpinfo();
これで、「http://localhost:8080/cgi-bin/info.php」にアクセスして、
phpinfo();のページが表示されればOKです。
—
2012.03.24
誤植があったので、少し修正しました
とりあえず作ってみよう
Posted 9月 14, 2010
on:Qtの勉強をほっぽったままになってしまった。。。とりあえず読書履歴管理のソフトを作ってみようかなと思ってます。
実装したい機能は
- 本の登録、検索
- ファイルへの書き出し(メディアマーカーのフォーマットにそろえてみたい)
- 本にコメントを複数つける(本の中で気に入ったところとかをメモりたい)
次回からは画面設計をはじめてみます。
とりあえず読了、かな
Posted 8月 31, 2010
on:投稿にだいぶ間が空いてしまいましたが、入門 Qt 4プログラミングを だいたい読み終わりました。この本の後半部分は実際にコードを書きながら学ぶというよりは、レシピブックのように使うもの見たいですね。Qtを何となくは理解したのですが、残念ながらまだまだQtの感覚もよく分かりません。これからはちょっとしたプログラムを作りながら学習を進めたいと思います。
第二章完了
Posted 7月 17, 2010
on:今日も入門 Qt 4プログラミングを 進めました。気がついたことなどをメモっておきます。
ダイアログのRADデザイン(p25-)
今回はQt Designerを使用しました。Macでユーザインタフェースを変更する場合は本と若干異なり、
Designer > 設定 > Appearance > ユーザインタフェースモード を
「複数のトップレベルウィンドウ」から「ドックウィンドウ」にするとできました。
外見が変化するダイアログ(p34-)
このページでもQt Desingerで新しくWidgetを作成します。本ではWdgetを作成する際、「Dialog with Buttons Right」テンプレートを使うということになっているのですが、最新のDesinerだと、本とちょっと挙動が違うみたいです。本ではOK用のボタンとCancel用のボタンがそれぞれできるように書いてあるんですが、実際にやってみるとボタンボックスという、OKとCancelのボタンがくっついたものがつくられました。
今回はテンプレートは「Dialog without Buttons」を使用し、サンプル通りにそれぞれのボタンを作る方針でいきました。
とりあえずこれで2章は完了。次回は3章だ!
第二章「QDialogのサブクラス化」まで
Posted 7月 13, 2010
on:今日は入門 Qt 4プログラミングを進めました。
第一章の「シグナルとスロット」、「ウィジェットのレイアウト」と、第二章の「QDialogのサブクラス化」まで完了です。
Qtのシグナルはイベントのことで、そのシグナルに結びつけることができる機能がスロットみたいですね。イベント駆動のものはあまりやったことがないのでまだまだ慣れないですが、少しづつ頑張っていきます。
あと、第二章のところをやっているとき、ボタンやチェックボックスが操作できない状態になりました。挙動がなんだかあやしい感じ。そのあとコンパイルし直したりしたら、正しく動くようになりました。自分の操作が悪いのか、それとも本の内容が変なのか。。。おそらく前者だと思うので、はやくQtになれていきたいですね。