PHPの最近のブログ記事

ベンチマークとか検証用で、まっさらのPostgreSQLをちゃちゃっと使いたいというときのマニュアルです。
※事前にPostgreSQL本体をインストールしておいてください。

MongoDB速すぎワロタw

いま巷で話題のMongoDB。
どれくらい速いのかと、insertのパフォーマンスをPostgreSQLと測定してみました。

結果はMongoDBの方が10倍以上速かったです。
まさに爆速!!

pecl: command not found

CentOSなどでPHPを入れたあと peclコマンドを実行しようとすると、"pecl: command not found"エラーが出ることがあります。

pg_send_queryは非同期クエリ送信だから、結果を待たない分だけpg_queryより速いかと思ってベンチマークをとってみた。

MyEthnaというソフトウェアパッケージを作りました。

MyEthnaというのは、EthnaとSmarty2とプロジェクトスケルトンが同梱されたパッケージ(tar.gzファイル)です。

(先ほどリリースされたばかりのEthna 2.6.0beta3が元になっています。)

解凍するだけですぐに開発を始めることができます。

ダウンロード
MyEthna-2.6.0beta3.tar.gz

使い方

cd ~
wget http://dqn.sakusakutto.jp/files/images/MyEthna-2.6.0beta3.tar.gz
tar xvfz MyEthna-2.6.0beta3.tar.gz
chmod 0777 MyEthna/tmp  MyEthna/log
mv MyEthna /tmp
ln -s  /tmp/MyEthna/www   /var/www/html/My
これだけです。
ブラウザから、
http://hogehoge.com/My/
などとしてアクセスしてみてください。

Hello Worldが表示されたら成功です。

ぜひお試しください!
そして感想を書いてもらえると幸いです。

MyEthnaのメリット

  • Smarty2がインストール済みです。
  • プロジェクトが生成済みなので、add-projectコマンドを実行する必要がありません。("add-project My"を実行済み)

これを作ったきっかけ

Ethnaユーザの裾野を広げたいと思ってつくりました。

http://sourceforge.jp/ticket/browse.php?group_id=1343&tid=15931

PHPでエラーラベルを設定する方法

PHPコードの中で指定する場合
error_reporting(E_ALL | E_STRICT);

PHP.iniで指定する場合
error_reporting  =  E_ALL  | E_STRICT;

ここまでは誰でもできると思います。

リファクタリング前

$flag = false;

if (empty($x)) {
    $flag = true; 
}
このようなコードをみかけたことはありますか?

はじめに

↓こちらの記事をもとに、DTIのVPSサーバ(エントリープラン、月額490円)でLAMP環境をバージョンアップしてみました。

ウェブ開発者のための、1時間でできるLAMP環境構築術(CentOS編) - さくらインターネット創業日記
"Ethna"というPHPのフレームワークについて、開発するときに役立つ10個の知識をまとめてみました。
勘違いしてる人がたまにいるのですが、ImageMagickとImagickは別物です。

ImageMagickとは、C言語で書かれた画像処理ソフトウェア・ライブラリ一式のことです。
Imagickとは、PHPからImageMagickを操作するためのPHP 拡張モジュールです。(こういうのをバイディングといったりします。)
Smartyで{debug}と書くと、デバグコンソールが開いて大変便利です。...開くのが1個だけなら。

chrome_debug_smarty.png
Pear::PagerでgetLinksが生成するリンクURLは、デフォルトではGET/POSTで送信したパラメータがそのまま埋め込まれる仕様になっています。

例えば画面のURLが
http://example.com/?action=foo
だとすると、その画面内のページャリンクのURLは、
http://example.com/?action=foo&pageID=1
のようになります。

さてここでページャリンクのURLを "action=foo" ではなく "action=bar" に変更したい場合、どうすればよいでしょうか?

いわゆるUnixの"フィルタ"というやつです。
パイプでつなげて使うときに便利です。

PHPプログラマの皆さんこんにちわ。
フレームワーク使いこなしてますか?

このたび、フレームワーク初心者のために簡単なサンプルアプリケーションを作ったので公開します。

名付けて、Yukiwikimini On Ethna


(YukiwikiminiをEthna上で動くPHPアプリとして移植しただけです)
ご存知かと思いますが、PHPスクリプトを書くときに、ファイル末尾の閉じタグ ?> は書かない方がよいと言われています。

そこで、ディレクトリを再帰的に検索して全PHPファイルから閉じタグを除去するワンライナーを紹介します。

$ find  . -name '*.php' | xargs perl -pi -e 's/^\?>$//'         
これだけでOK!
PHP使いの人も、Perlを勉強すると良いことがあるかもしれません。

参考
PHPの閉じタグは心の臓に悪いから使わないで - Unknown::Programming
Perl ワンライナー [ 一行野郎 OneLiner ] 勉強中。
(タイトルは釣りです。周知の事実だったらすいません。)

問題です。

PHP5のコンストラクタについて。
PHP5で(名前空間を使わずに)Class Foo のコンストラクタを書くときに、__construct() と書いても Foo() と書いても挙動は同じである。
○か×か
この問題、すぐに答えられますか?

Ethna_ActionClassの比較

↓比較コマンドとその結果

Perlで配列をユニークにする方法

PHPのarray_unique的なやつです。

#!/usr/bin/perl

use strict;
use warnings;

my @list = (1, 2, 3, 1);

my @unique = array_unique(@list);

print "@unique";


sub array_unique {
    my @list = @_;
    my %unique;
    for (@list) {
        $unique{$_} = 1;
    }
    return keys %unique;
}

※この方法だと要素の出現順序が変わってしまうので、厳密にはPHPのarray_uniqueとは違います。

参考

Hashを使って配列をユニークにしよう!
PHP array_unique in Perl » From PHP to Perl

まずはEthna.phpをアップグレード

Ethna.phpはアップグレードしても問題なさそうだ。

Ethna2.6からは、クラスファイルの命名規則が変わっている(Ethna_ActionClass.php → ActionClass.php)ので、ファイル名をリネームする必要がある。
なんでこんな比較文献学みたいなことをやってるかと言うと、version2.5をすっ飛ばして一気に2世代分もバージョンを上げるのが怖いからです。(←ビビり)

Ethna.phpの比較


2.3.5のEthna.phpをUTF8で保存してから、バージョン間の差分を見てみる。

人気記事

このアーカイブについて

このページには、過去に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のカテゴリはPerl再入門です。

次のカテゴリはEthnaです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近の人気記事