Java言語で学ぶリファクタリング入門

PHPリファクタリングを学べる書籍を探していましたが、存在しなかったのでこの本で学習しました。Javaが読めることが前提ですが、十分PHPにも応用できると思います。
本格的なオブジェクト指向言語ではないPHPでは、特に巻末付録Aのリファクタリング一覧がもっともためになります。半分ぐらいはオブジェクト指向と関係ないのでますはここから学習しましょう。(多分リファクタリングとは意識せずに行っているものも多いと思います)

本編に関しては、enumが出てくる箇所は無視。第4章のヌルオブジェクトはJavaとはNULLの扱いが違うので無理に行う必要はないと思います。また第8章、9章のサブクラスによるタイプコードの置き換えや、State/Strategyによるタイプコードの置き換えはちょっと難しく、本格的なオブジェクト指向言語ではないPHPでここまでやる必要があるのかと感じました。また第12章の観察されるデータの複製はswingを使った特殊なパターンでテンプレートエンジンやフレームワークをよく使うPHPでは不要と感じられました。その他の章はPHPユーザでも参考になると思うので、リファクタリングに興味のある方は是非一読してみてください。

Java言語で学ぶリファクタリング入門

Java言語で学ぶリファクタリング入門

PHP Warning: PHP Startup: ******: Unable to initialize module

Linux(CentOS)上でPHPを実行すると、

PHP Warning:  PHP Startup: ******: Unable to initialize module
〜

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/xxxxxxxx.so'
〜

といったエラーが出た。プログラムは問題なく動いていたが、気持ち悪いので対処しました。(ここでの対処法は*******やxxxxxxxを使用しないことが前提です)

まず/etc/php.iniファイル内に「extension=*******.so」や「extension=xxxxxxx.so」と記述があればコメントアウト。次に/etc/php.dディレクトリ内の******.iniファイルやxxxxxx.iniファイルを開き、「extension=*******.so」や「extension=xxxxxxx.so」といった記述があればコメントアウト。これで私は対処できました。

Amazonレビュー数ランキングを公開しました

ServersMan@VPS+CentOS PHP(Smarty),MySQLにて作成しました。

http://www.rockstar2007.com/amazon/index.php?hierarchy=root&root_genre_id=465610
AmazonAPIから第4階層のカテゴリまでの全商品(和書のみ)を集めてきて、DB化し、レビューの数順に表示しています。AmazonAPIはレビュー数が取得できないので(昔はできたのに・・)、リンクのURLからhtmlを解析して取得しています。また各カテゴリごとに10ページまでしか取得できないので(昔は400ページまでいけたのに)、レビュー数が多くても現在の売れ筋商品から外れているもの(炎上したもの、過去に一時的に売れたもの)が取得出来ていません。それでもある程度は参考になると思い公開させていただきました。

パピヨン動画を公開しました

ServersMan@VPS+CentOS PHP(Smarty+オリジナルフレームワーク),MySQLにて作成しました。
http://www.rockstar2007.com/papillon/

youtubeニコニコ動画から独自に集めてきたパピヨンの動画をオリジナルのランク付け、カテゴリ分けをして公開しております。簡単なサイトではありますが、一つのサイトを最初から最後まで全て一人で作成するのは思いのほか苦労しました。一番苦労したのはデザインです(仕事ではデザイナーさんに任せていたので。。)
稚拙なサイトではありますが、出来るだけ可愛いパピヨン達を集めたのでよろしければご閲覧下さい。

phpMyAdminにログイン出来なくなった

apacheのユーザを変更したところ、phpMyAdminにログイン出来なくなった(リロードを繰り返す)。apacheのユーザを元に戻したところ、

Existing configuration file (./config.inc.php) is not readable.

とエラーが発生。

#chmod 705 /var/www/phpmyadmin/config.inc.php

でエラーが消えたが、再びphpMyAdminにログイン出来なくなった(リロードを繰り返す)。/var/lib/php/session内のファイルを削除したところ、無事ログイン出来ました。

ServersMan@VPS+CentOS PHP,MySQLの初期設定(Entryプラン)

CentOSのアップデート。

# yum update
# cat /etc/redhat-release
CentOS release 5.7 (Final)

MySQLのインストール。

# yum install mysql
# yum install mysql-server
# yum install mysql-devel

インストール後、MySQLの設定ファイルを編集→起動。

#vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
symbolic-links=0
old_passwords=1
default-character-set=utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8
[client]
default-character-set=utf8

# /etc/rc.d/init.d/mysqld start

PHPのインストール。

# yum -y install php
# yum -y install php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml php-imap

phpmyadminを使用するため、PHPのバージョンを5.2に+php-mcryptのインストール。

# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
# vi /etc/yum.repos.d/utterramblings.repo

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

# yum update php*
# yum install php-mcrypt

rpmファイルのenabledを0に。

# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

phpmyadminのインストール。

# yum -y install subversion
# yum -y install expect

# svn checkout https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/tags/STABLE/phpMyAdmin phpmyadmin
# mv phpmyadmin/ /var/www/

# cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
# chmod 755 /var/www/phpmyadmin/config.inc.php
# mkpasswd -l 46
ojwelolk6gmsswpgqosameeBmtxswelzamM4wdfcfolbz> ← ランダムな46桁の文字列※設定ファイル編集で使用する
# vi /var/www/phpmyadmin/config.inc.php

$cfg['blowfish_secret'] = 'ojwelolk6gmsswpgqosameeBmtxswelzamM4wdfcfolbz>';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Lang'] = 'ja-utf-8';

phpmyadminの設定。

# chown -R root.apache /var/www/phpmyadmin/
# vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /var/www/phpmyadmin

# /etc/init.d/httpd restart

phpmyadminでログイン出来るようにするための設定。

#vi /etc/php.ini
session.save_path = "/var/lib/php/session" ← session.save_pathを確認
# chmod 777 /var/lib/php/session

「Project Euler」解答ブログを作成した

数学の問題を好きなプログラミング言語で解く「Project Euler」というサイトがあります。こちらの翻訳wikiを見つけたので、Javaで随時解答していこうと思います。が、量がかなり多いため、別ブログを立ち上げました。
数学の問題を好きなプログラミング言語で解く「Project Euler」解答

よろしければ、こちらの方もご覧になって下さい。