2009年8月アーカイブ



最近PHPに触れる機会が増えたので参考に。



スペック


どの程度の技術者が「PHPを習得する上で最低限読むことをお勧めするもの」を公開しているのか?


と気になる方もいると思うので、私のスペック。


基本WEB系です。



エンジニア年数

4~5年。

*nux

コマンドは*nix上で開発作業をしても困らない程度。サーバセットアップからネットワーク設定など一通り可能。

Java

最低限書ける程度。BeanとかSerblet,JSPくらいは書ける。Swing,Springはちょびっと触った程度。案件経験なし。

Python

最低限書ける程度。案件経験若干。

JavaScript

自信を持って書ける。案件経験あり。

PHP

書ける。案件経験多。

C

ちょびっと触った程度。案件経験ないです。

Lisp系

Scheme,Gauche,Clispあたりをちょびっと触った程度。案件経験ないです。(というか、自分で案件作らない限り遭遇することがない気がする。)

...etc


というわけで、多言語経験はあって、PHPも触ったことあります。



PHP.net


言語マニュアルはここを参考にします。


ビルトイン関数をgoogleで検索するときには、「php.net <検索する関数>」などと、


「php.net」と明記し検索します。


(私見ですが、ここ以外のサイトはあやふやな事が書かれていることがあるので、時間の無駄になることがあります。)



PHP.net

http://www.php.net/manual/ja/

最近、個人的に読んでよかったなと思ったページを列挙しときます。



クラスとオブジェクト (PHP 5)

Java使いの方は、この辺を一読していただければ、Javaとの差異を考えながら習得できるのでは。



クラスとオブジェクト (PHP 5)

http://www.php.net/manual/ja/language.oop5.php


PHP 型の比較表

PHPの型比較は違和感あるので、一読。



PHP 型の比較表

http://www.php.net/manual/ja/types.comparisons.php


IBM Developer Works Japan


IBMの開発者が公開してくれてる情報です。



PHP でオブジェクト指向の設計をするための 7 つの良い習慣を身につける

オブジェクト指向を知ってる方ならここのソースコードをみれば大体理解いただけるのかな?



PHP でオブジェクト指向の設計をするための 7 つの良い習慣を身につける

http://www.ibm.com/developerworks/jp/opensource/library/os-php-7oohabits/?ca=drs-jp


5 つの共通 PHP デザイン・パターン

デザパタの実践です。



5 つの共通 PHP デザイン・パターン

http://www.ibm.com/developerworks/jp/opensource/library/os-php-designptrns/


PHP V5.3 では何が新しいのか: 第 1 回 オブジェクト・インターフェースに関する変更

個人的な探求から。



PHP V5.3 では何が新しいのか

第 1 回 オブジェクト・インターフェースに関する変更:http://www.ibm.com/developerworks/jp/opensource/library/os-php-5.3new1/


PHP での名前空間を適切に作成する

個人的な興味ですが、PHP5.3から入った新機能に関する投稿記事です。



PHP での名前空間を適切に作成する

http://www.ibm.com/developerworks/jp/opensource/library/os-php-namespaces/


Ajaxを利用してPHPを開発する、第2回: 「戻る」「進む」「更新」

同じく個人的な探求からですが...。



Ajaxを利用してPHPを開発する、第2回

「戻る」「進む」「更新」:http://www.ibm.com/developerworks/jp/opensource/library/os-php-rad2/


お勧め書籍


この二冊はガチだと思います。



初めてのPHP5

オライリーのPHP本。



初めてのPHP5

http://www.oreilly.co.jp/books/4873112575/


プログラミングPHP 第2版


プログラミングPHP 第2版

http://www.oreilly.co.jp/books/9784873113425/




作成しているDB周りのソースコードも一段落してきたので、試しにSubversionとGitの連携してみました。


連携先のSubversionはOpenpearのリポジトリです。


Openpearについて


openpear



Openpear

http://openpear.org/

概要

pearコマンドで本家PEARと同様にインストールして使えるプロジェクト。


マイプロジェクト


PEARで有名なMDB2の偽物を作ってたからそれをコミットした。



MDB2_Fake

http://openpear.org/package/MDB2_Fake

正確には、MDB2は様々なDBに対応していたり、様々なメソッドがあり便利ですが、


私自身そんなに大それたメソッドやDB対応があっても使わないですから(笑)


という訳で同じメソッド名で組み直し。現状、MySQLしか対応してないです。


使い方はMDB2とほぼ同様です。


プログラミングしていて気をつけた点はソースコードが分かりやすい事です。


(抽象クラスやインラーフェースを使ってるおかげでわかりにくくもなってますが...)


あとは、すみません。PHP5のみ対応です。



以上、マイプロジェクトについて終わり。


追記:頼むからopenpearプロジェクト打ち切りとかないでくれよ...


git-svnについて


git-svnはGitとSubversionが連携するためのツールです。


私の場合はFedoraを使ってるので、



# yum install git-svn

でインストール終了。


Subversionリポジトリのクローン作成



git svn clone <Subversionリポジトリ>

Subversionリポジトリのクローン作成(trunk,branches,tagsをもつ場合)



git svn clone -s <Subversionリポジトリ>

Subversionリポジトリへのプッシュ



git svn dcommit

Subversionリポジトリから更新を取得



git svn rebase

今のところ、Subversionリポジトリのtrunk,branches,tagsの使い分けが出来なくて困ってる。


あとは問題ない感じ。


これでGitの一週間は終わり。もしかしたらちょくちょく気づいたことがたまったら投稿するかも。


参考


とっても参考になった。



* 作者: Travis Swicegood, でびあんぐる


* 出版社/メーカー: オーム社


* 発売日: 2009/08/12


* メディア: 単行本(ソフトカバー)




DB周りのソースコード書きながらGitを使う。早いもので5日たってしまった。


ソースコードが増えてきても快適快適。


ソースコードがちょこちょこ増えてくるタイミングでGitをやり始めると習得スピードとファイルの増え方がちょうどよい感じ。



git diff 作業ツリーとリポジトリの差分



git diff HEAD

git branch -m ブランチ名を変更する



git branch -m <変更前のブランチ名> <変更後のブランチ名>

git branch 新しいブランチを作成する



git branch <作成するブランチ名>

git branch ブランチに基づき新たにブランチを作成する。



git branch -m <基づくブランチ> <作成するブランチ名>

git merge 直接マージ


マージ元ブランチの履歴を全て個別にマージする。



git merge <マージ元ブランチ名>

git checkout -b 圧縮コミット


マージ元ブランチの履歴を全て一括し新たなブランチを作成する。というかチェックアウトして作ってるだけ。



git checkout -b <作成するブランチ名> <マージ元ブランチ名>

git merge --squash 圧縮コミット


マージ元ブランチの履歴を全て一括しブランチにマージする。



git merge --squash <マージ元ブランチ名>

以上、マージの例です。


この辺使ってたら競合に遭遇したので、次回は競合の解消法を書けたらいいなと思ってます。




Git。Git。Gitの4日目。もちろんGitだけじゃなく、ソースコードも触ってます;^^


git clone リモートのGitリポジトリのクローン作成。



git clone <リモートのGitリポジトリ>

試しにクローンを作成する。

試しにgithubで友人と私が管理してる死にプロジェクトのクローンを作成する。



mkdir mysite
cd mysite
git clone git://github.com/rokujyouhitoma/seneca.git

追記:id:bonk氏。そろそろプロジェクト再開しますか!?


git diff 差分


コミットしていないかつステージに存在するものの差分を表示。



git diff

git diff --cached 差分


ステージエリアとリポジトリ間の差分を表示。



git diff --cached

ステージエリアって何?


作業ツリーにおける変更で、リポジトリに反映してないもの。


対象ファイルをgitに無視させる。


gitに認識させたくないファイルが存在すると思います。


例えば、Eclipseによる.projectファイルや、Emacs使用時に生成される*.*~ファイルです。


これらをgitに認識させたくない場合の選択肢は2つあるみたいです。


.git/info/excludeを編集

このファイルはユーザー毎の設定ファイルなので、影響範囲は自分のみ。


.gitignoreを編集

このファイルはコミットされるので、自分以外の人にも影響が出る。


git mv ファイル名の変更、移動


Unix、Linuxのmvコマンドと同じ。



git mv <対象ファイル> <移動先や変更名>

githubについて


githubはgitのプロジェクトホスティングサービスです。オープンソース系のプロジェクトが多いので覗くだけでも楽しめます。


https://github.com/


id:rokujyouhitomaはgit4日目とか書きながらgithubで既に使ったことがありました...m(__)m




根本的なユーザー設定をしてなかったので設定する。


git config --global user.name -ユーザー名の設定



git config --global user.name "<ユーザー名>"

git config --global user.email -メールアドレスの設定



git config --global user.email "<メールアドレス>"

Subversionとgitのコマンド対応表


Subversionユーザーなので、対応表があるとすんなり頭に入ると思って作った。











Subversiongit
svnadmin creategit init
svn checkoutgit clone
svn updategit pull
svn addgit add
svn commitgit add, git commit
svn statusgit status
svn switch <ブランチ>git checkout <ブランチ>
svn merge <ブランチ>git merge <ブランチ>
svn revert <ファイル>git checkout <ファイル>

Subversionとgitの連携


Subversionとgitのコマンド対応表で思いだしたのだけどSubversionとgitは連携できる。


なので、Fedoraに連携用のライブラリを入れる。



# yum install git-svn

連携は次回してみるかな。


MacでVirtualBoxのFedoraを使ってるのだけど、全角英数切り替えがFedoraだとctl+space。

なのだけど、macではctl+spaceはSpot Lightに割り当てられてる。。。

というわけで、macのSpot Light割り当てを切る。

Macでctl + spaceでSpot Lightが起動するのを抑制する。

1.「システム環境設定」=>「Spotlight」

2.「Spotlightメニューのキーボードショートカット」のチェックを外す。

3.「Spotlightウィンドウのキーボードショートカット」のチェックを外す。

以上。

参考

macのemacsでctrl- space がspotlightに取られる件について



話題のGitを使ってみてるところ。Gitの読みは「ぎっと」らしい。「じっと」じゃいないのか。そうですか。


昨日はgitの初期化からコミット、ブランチをつくりmastarとブランチの切り替えなどをした。


http://d.hatena.ne.jp/rokujyouhitoma/20090817


今日はまずタグの使たりしたいな。ちなみに昨日はFedora10でしてたけど、自分の使ってるmacにgit入れたの思い出したからmacのgitでやります。


git tag -タグを打つ


タグを打つ


$ git tag <タグ名称> <リポジトリ名>

タグの確認


$ git tag

git rebase -ブランチの変更を別のブランチで適用



$ git rebase <ブランチ名>

git branch -d -ブランチの削除



$ git branch -d <ブランチ名>

おまけ


分からなくなったら、helpコマンド。



$ git --help

$ git <コマンド名> --help

helpはviやlessコマンドと同様のキーバインドみたい。:qで終了。



さて、今日は体調悪いので寝る。おやすみ。




自宅にバージョン管理システム欲しいなと思って、Subversionにしよっかなっと思ったけどGitに興味があったのでGitに。


環境



OS

Fedora10

インストール


RHELクローンだからyumコマンドで。



# yum install git

バージョンの確認



$ git --version
git version 1.6.0.6

git init リポジトリの作成


ディレクトリを作成し、そこでgitの初期化コマンドを実行する。



$ mkdir <リポジトリ名>
$ cd <リポジトリ名>
$ git init
Initialized empty Git repository in /<ワークディレクトリ>/<リポジトリ名>/.git/

git add -対象ファイルをgitの管理下にする。



$ git add <対象ファイル>

git commit -コミットする。



$ git commit -m "<コミットメッセージ>"

git log -コミットメッセージの確認



$ git log

git status -作業ツリーとgitリポジトリの状態



$ git status

git branch -ブランチの作成


masterはSubversionでいうtrunkにあたる。



$ git branch <任意のブランチ名> master

git checkout -ブランチへの切り替え。



$ git checkout <ブランチ名>

git checkout -masterブランチへの切り替え。



$ git checkout master

参考


入門git

subversion本も以前読んだが、バージョン管理システムの概要やSubversionとの比較、インストール法など載っており便利。



* 作者: Travis Swicegood, でびあんぐる


* 出版社/メーカー: オーム社


* 発売日: 2009/08/12


* メディア: 単行本(ソフトカバー)


追記


次回はブランチ切り替えの復習とタグの使い方とか。


とっても気になるやつ。clispで書かれたAPIサーバーとブログシステム。あとで忘れずに調べる事。あとで忘れずに調べる事。

[インストール]MacにSBCLインストール

Steel Bank Common Lisp

teepeedee2

あわせて読みたい

  • あわせて読みたいブログパーツ

Lingr java-ja

ウェブページ

Powered by Movable Type 4.1