おぼえがき

おぼえがき

php-figのコーディング規約に準拠したコードを書く

2013-02-18 | php
前回、php5.4.9の環境を入れて新しい環境が手に入った。

続いて、php-figで定義されているコードを書いていこう
PHP_CodeSnifferだとコードのチェックしてくれるだけ、PHP Coding Standard Fixer
使えば、コードも直してくれる。php5.4.9入れたことだし、PHP Coding Standard Fixer
こいつを使ってみる。
psr0/psr1/psr2にあわせてコードを修正してくれる。

いろいろ、コーディング規約が乱立しているがこれで決まってほしい



ついでに、vimでこいつがキックできるようにする。

PHP Coding Standard Fixerを入れる
sudo wget http://cs.sensiolabs.org/get/php-cs-fixer.phar -O ~/php-cs-fixer
sudo chmod a+x php-cs-fixer

vimプラグインを入れる
git clone https://github.com/stephpy/vim-php-cs-fixer.git
sudo cp ~/vim-php-cs-fixer/plugin/php-cs-fixer.vim vimのプラグインの場所

■.vimrcを修正
"---- php-cs-fixer
" php-cs-fixerをインストールした場所を指定
let g:php_cs_fixer_path = "/home/xxx/php-cs-fixer"
" psr0 psr1 psr2 allを指定
let g:php_cs_fixer_level = "all"
" default sf20 sf21の指定symfonyの指定などの構造確認?が出来る
let g:php_cs_fixer_config = "default"
" phpコマンドの場所
let g:php_cs_fixer_php_path = "/home/xxx/.phpenv/versions/5.4.9/bin/php"
" フィルター(http://cs.sensiolabs.org/ここにしていされているやつが使える)
let g:php_cs_fixer_fixers_list = ""
let g:php_cs_fixer_enable_default_mapping = 1
let g:php_cs_fixer_verbose = 0

nnoremap <silent><leader>pcd :call PhpCsFixerFixDirectory()<CR>
nnoremap <silent><leader>pcf :call PhpCsFixerFixFile()<CR>
"---- / php-cs-fixer

vimでphp開いて、\pcfって入力すると、修正してくれる

ちょっとvimの設定がまだすべて、把握できていない

vimの折り畳みの書式の/*{{{*/
が入ってるとちゃんと動かない気がする


これを使って、fuelphpのソースコードのチェックを掛けるとめちゃくちゃ変更される
怖くて適応出来ない


■コマンドラインで修正
こんな感じで出来る 適当
/home/xxx/.phpenv/versions/5.4.9/bin/php ~/php-cs-fixer fix xxx_controller.php --level=psr2 --fixers=php_closing_tag,phpdoc_params --config=sf21


んー体調が悪い

phpを複数バージョン入れてfuelphpをインストールする

2013-02-16 | php
php5.4.9が出ているので、それでfuelphpを動かしてみる
phpの複数のバージョンを入れて動作確認するには、
phpenvのインストールとphpbuildのインストールをすると調子良い。

phpenv:複数バージョンの切り替えを司る機能
phpbuild:複数バージョンをインストール出来る仕組み

これを使うと、自分の環境の指定したディレクトリ意外汚れないからいい感じ。
みんなにも迷惑かからない

■完成図
/home/xxx/.phpenv/version/5.4.9<-- php5.4.9が入る場所
/home/xxx/.php-buid

こんなディレクトリ構成になる

■phpenvを入れる
git clone https://github.com/CHH/phpenv.git
cd phpenv/bin/
./phpenv-install.sh
これで、phpenvの導入完成

.bashrcの修正
PATH="$PATH":/home/xxx/.phpenv/bin
eval "$(phpenv init -)"

■phpbuildを入れる
git clone https://github.com/CHH/php-build.git ~/.php-build

.bashrcの修正
PATH="$PATH":/home/xxx/.phpenv/bin:/home/xxx/.php-build/bin

■どんなバージョンが入れられるんだろう・・・確認してみる
$ php-build --definitions
5.2.17
5.3.10
5.3.11
5.3.11RC1
5.3.11RC2
:
:
めっちゃいっぱいある

■php5.4.9をいれる
そのまえに、今回cli版だけでなく、fuelphpも動かしたいので、apacheで
利用するphpのモジュール(libphp5.so)も変える必要がある。

1.現在利用しているlibphp5.soを退避させておく
 (現状の環境だと、/usr/lib64/httpd/modules/配下にあるのでそれをバックアップ)

 これから実行するphp-buildコマンドで、ここの、modules配下にあるlibphp5.soが
 上書きされるようになるんだけど、自分の権限でここが上書きできないのであれば、
 modules配下の書き込み権限を変えておく必要がある。

2.phpをbuildする設定を変える。
 普通にbuildすると、libphp5.soを作ってくれないので、設定ファイルを修正
 /home/xxx/.php-build/share/php-build/definitions
 ここの配下にある、5.4.9を修正
 configure_option "--with-apxs2" "/usr/sbin/apxs" <--- この行追加
 install_package "http://downloads.php.net/stas/php-5.4.9.tar.bz2"
 install_pyrus
 install_xdebug "2.2.1"

 apxsのパスを正しいものにすること。

3.buidする
 php-build 5.4.9 ~/.phpenv/versions/5.4.9
 このコマンド叩けば良いんだけど、いろいろパッケージ入れろとうるさい

 sudo yum install re2c
 sudo yum install libxml2-devel
 sudo yum install openssl-devel
 sudo yum install libcurl-devel
 sudo yum install libjpeg-devel
 sudo yum install libpng-devel
 sudo yum install readline-devel
 sudo yum install libtidy-devel
 sudo yum install libxslt-devel

 この位はインストールして出来上がり。

 ls ~/.phpenv/versions/5.4.9/
 bin etc  include lib php pyrus sbin share var
 こんな感じでインストール出来ている

4.ちゃんと入ったか確認
 phpenv versions
 * system
 5.4.9 (set by /home/xxx/.phpenv/versions/5.4.9/.ruby-version)

 お!5.4.9がある。これでOK

5.バージョンを切り替える
 phpenv local 5.4.9
 オプションにlocalとglobalが指定できる
 localにすると、.phpenv/versions/5.4.9/配下のphpが5.4.9が動く

 phpenv versions
  system
 * 5.4.9 (set by /home/xxx/.phpenv/versions/5.4.9/.ruby-version)

 お!切り替わった

■php5.4.9をいれる(2)
apache経由でも動くようにする
(1)でlibphp5.soモジュールを作成している。
/usr/lib64/modules/libphp5.soが最新のものになっているはず

1.まずは、5.4.9用のモジュールを移動させる
 5.4.9/lib/httpd/modules/配下に、libphp5.soを移動

2.(1)で退避させた旧バージョンを元にもどしておく

3.httpd.confの修正
 php5.4.9を動かす際は、
 こんな感じになる
 LoadModule php5_module /home/xxx/.phpenv/versions/5.4.9/lib/httpd/modules/libphp5.so

4.じゃー動くか確認
 apacheをリスタートしとく。

 5.4.9/配下のディレクトリ構成は下記のような感じ。
 ここのvarにdocumentrootを作っておく
 bin etc  include lib php pyrus sbin share var
 var/www/index.php
 index.phpにphpinfo();だけ入れておく。

5.これで見てみると、自分の環境は、5.4.9で動いておる

■fuelphpを入れてみる
1.環境を作る
 5.4.9配下はこんな感じだけど、
 bin etc  include lib php pyrus sbin share var
 ここに、fuelのディレクトリを作った
 bin etc  fuel include lib php pyrus sbin share var

 documentrootはvar/www配下なので、fuel配下に設けるpublicディレクトリを
 var/www/プロジェクト にたいしてシンボリックリンクを後で張る

2.fuelディレクトリ配下での作業
 curl get.fuelphp.com/oil > get_installer
 get_installerのファイルのPREFIXをカレントディレクトリに修正

 ./get_installer
 これで、同じディレクトリfuel配下のディレクトリにoilが置かれる

 oilコマンドの実行
 するんだけど、phpを叩いてしまうと、system上動いているphpを
 キックしてしまうので、php5.4.9が作動するように、oilファイルの
 phpを
 /home/xxx/.phpenv/versions/5.4.9/bin/php に変更する

 じゃー実行
 oil create プロジェクト名

 できた。

 プロジェクト配下にあるpublicディレクトリを5.4.9/var/www配下に対して
 シンボリックリンクを張って完成

cliでphpを起動しようとすると、/etc/php.iniを見に行ってしまうので、起動するときは、
~/.phpenv/versions/5.4.9/bin/php -c /home/xxx/.phpenv/versions/5.4.9/etc/php.ini oil g controller registration

こんな感じで実行する


※php oil g controllerが全然動かなかった。
これは、phpがsystem上動いているPHPをキックするため。
oilコマンドを5.4.9の環境で実行する時は、
/home/xxx/.phpenv/versions/5.4.9/bin/php oil g controller
と言う風にしないとダメ・・・

はまった

phpでgithubみたいなビューワー

2013-02-12 | php
こんなのあったんだ知らなかった
gitlistってやつをインストールしてみる

こんな感じで見える


cd ~/work/gitlist/
wget --no-check-certificate https://s3.amazonaws.com/gitlist/gitlist-0.3.tar.gz
tar -xzvf gitlist-0.3.tar.gz
chmod 777 cache/

config.phpの編集
client=gitコマンドのパス
repositories=レポジトリのトップディレクトリ
baseurl=ブラウザからアクセスするURL

.htaccessの編集
RewriteBaseをよしなに修正


cd ~/www/
ln -s ~/work/gitlist/ .


どんな感じで見えるかな、repositoriesで指定したディレクトリ配下に
ソース持ってきてみる
git clone xxxx@xxxxxx dev


ブラウザからアクセス
http://xxxx.xxx.ne.jp/gitlist/




できた。

うむ。みえやすい

ubuntu livewallpaper

2013-02-06 | linux_other
ubuntuのlivewallpaperのstableを入れるおぼえがき



sudo add-apt-repository ppa:fyrmir/livewallpaper-stable
sudo apt-get update && sudo apt-get install livewallpaper livewallpaper-config livewallpaper-indicator

あとは、livewallpaper-config起動すると実行できる


さて、仕事するか