PHPMac・Windows)

この投稿は7年半前の記事です。 情報が古くなっている可能性があるので、その点ご了承ください。
2009 年 8 月 21 日 2,808日前)
8,274文字 (読了時間20分)

SPONSORED LINK

他人に教えるときのメモ用です。

開発環境構築

リモートサーバ編

仕事で使うようなサーバは大体Linuxです。ときどきWindowsサーバもありますが、普通はLinuxです。

PHP開発者として身を立てたかったら、自分でサーバぐらい借りましょう。さくらが安くてオススメです。月500円ぐらい。

Mac編

Apache、MySQL、PHPを一発で整える楽な方法

どっちも大して変わりません。基本的に英語ですが、問題はそれほどないと思います。

全部自分でやる大変な方法

Macporsを利用する。これは将来的にサーバ・エンジニアリングや他言語(Ruby、Perl、Python、Objective-C)での開発を検討している方におすすめです。

プログラミングとはコマンドライン環境(マウスを使わず、コマンドだけでパソコンに命令する)と切っても切れない関係にあるので、いい練習になるでしょう。

デザイナー志望の方にはおすすめしません。Apache、MySQL、PHPのインストールも個別に行うことになるので、大変です。

Windows編

Windowsでは色々と面倒なことがあるので、Xamppをおすすめしておきます。

どうしても自分でやりたい方はググってください。

XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows

XAMPPではじめる全部無料のかんたん+最新自宅サーバーfor Windows [書籍]

著者林 和孝

出版社ラトルズ

出版日2007-12

商品カテゴリー単行本

ページ数391

ISBN4899772092

特徴1.自宅でサーバーを作ろう, 2.ネットワークの設定, 3.XAMPPのセットアップ, 4.WWWサ^バーを構築しよう, 5.タイナミックDNSを活用しよう

Supported by amazon Product Advertising API

PHP開発ツール

共通

PHPは基本的にプログラミング言語です。なので、文字ばっかり書くことになります。

「テキストエディタで全部やる」という硬派なプログラマもいますが、ガッツリ作るときは面倒くさいので、PHP用の統合開発環境で作ったりします。

統合開発環境(IDE)というのは、コードヒントを出したり、マニュアルを参照できたり、デバッグができたり、ソースコード管理システムへの連携が容易だったり、色んな便利機能がついているものを指します。

大規模なものはIDEでがっつり作り、テキストエディタは小規模なものや細部の修正に使うといのが基本です。

Mac用テキストエディタ

CotEditor

Cocoaベースで作られたフリーのエディタ。コードのカラーリングができる。

mi

歴史のあるフリーエディタ。PHP拡張を入れると、コードをカラーリングしてくれる。ただし、黒背景+黄緑+赤という配色なので、デザイナーにはおすすめできない。

viとかemacsとか

ターミナルから利用できるエディタ。

コマンドラインの操作をしたことがない人にはものすごく癖のある操作感なのえ、デザイナーにはおすすめできないが、エンジニアよりの技術を身につけたい人は絶対にさわっておくべき。

SSHなどと並び、サーバ管理者には必須の技術

Windows用テキストエディタ

Terapad

フリーのエディタ。シンプル。PHPのコードかラーリングはない(はず)ので、Perlカラーリングでだましだまし使う。

秀丸

有名なエディタ。シェアウェアで4000円ぐらい。

Notepad++

おそらく、Windows環境ではこれで決まり。圧倒的におすすめ。コードカラーリングもばっちりの上、コードヒントも出るなど、なにかと便利。テキストエディタというより、統合環境より。

ただし、UTF-8以外の文字コードではちょっと面倒なこともある。

メモ帳(使っちゃダメ!

Windowsにはデフォルトでメモ帳というテキストエディタが入っていますが、これは使わない方がいいです。Windows以外の改行コード(LF or CR)を認識できない上、UTF-8に対応していなかったはずです。

統合開発環境(IDE)

これはWindowsでもMacでもあんまり変わりません。

Aptana

フリーのIDE。一番オススメ。特にコードヒントは秀逸。自分で定義したクラス、変数、関数も候補として出してくれるので、一度使ったらやめられない覚醒剤のようなツール。インストールはStandAlone版で。

Dreamweaver

いわゆるWebデザイナー御用達のツール。有償。設定を色々と行えばデバッグも可能だが、使いこなしている人が少ないのか、情報があまりない。

SVNアクセスやFTP連携などの機能もあり、CS4ぐらいからプレビューでJavascriptを実行できたりするはず。

Eclipse+PDT

AptanaのベースになっているEclipseというJava用IDEにPHPプラグインを入れたもの。個人的にはAptanaの登場で消えていくのでは、と思っている。

デザイナーにはオススメできない。Eclipseのインストール+日本語化で寿命が二年縮まる。

PHP入門者がつまずく共通点

改行コードとエンコーディング

パソコンは0と1しか扱えません。

その後、この0と1を駆使して人間にわかる言葉を扱えるようにしたのですが、パソコンを作ったのは日本人ではなかったので、とりあえずアルファベット+数字+メタ文字(改行やスペース、タブなどの特別な意味を持つ文字)を表す仕組みが作られました。

その後、このアルファベットを使って日本語を表す仕組みが作られました。

0と1→アルファベット+数字+メタ文字

色んな人が色んな風にパソコンを改良していった結果、「ここで改行してください」という意味を表すメタ文字「改行コード」には3種類があります。Linuxで用いられるLF(\n)とMacで用いられるCR(\r)とWindowsで用いられるCRLF(¥n¥r)です。

開発環境がWindowsで、本番サーバがLinuxの場合、CRLFはすべてLFに変換する必要があります。

普通はFTPツールが自動でやってくれますが、メール送信プログラムなどを書いた場合はこのせいでハマることがあるので、注意してください。

アルファベット+数字+メタ文字→日本語

前述の通り、日本語の文字を理解するとき、パソコンはアルファベットを元にしています。例えば、「あ」という文字は「829F」という具合です。

しかしながら、「あ」=「829F」というのは、あくまで誰かが決めたルールです。はじめにルールを作った人は「渡邊さん」の「邊」は「辺」でもいいだろと思っていたとします。すると、「邊」を表す文字コードを作らなかったりします。

すると、プログラマの渡邊さんが激怒し、「俺の名字も表示できないルールは変えてやる!」と思って新しい文字コードを作り始めます。

というわけで、ある言語を表すルール(文字コード)にはいくつかの派閥が生まれました。それがShift-JIS、EUC-JP、UTF-8などです。

Shift-JISはWindows環境と携帯サイト開発で好まれ、EUC-JPはLinux技術者たちの間で古い歴史を持っています。UTF-8は国際化に対応し、かなり多くの言語を表現できますが、サイズが大きいので昔からの技術者に嫌われたりしています。また、メールのヘッダはISO-2022-JPじゃないといけなかったりします。

というわけで、PHPを開発するにあたって、文字コードは常につきまとう存在です。あまり考え込みすぎると気が狂ってしまいますが、「文字コードはプロジェクト内で統一する」というシンプルなルールで乗り切って下さい。

mod_rewrite

mod_rewriteはApacheの拡張機能ですが、色んなところで使います。SEO対策が重要になるにつれ、mod_rewriteの存在感はますます確固たるものになっています。

MySQLの初期設定

MySQLはPHPと非常に相性がいいデータベースですが、初期設定ではデフォルトの文字コードがLatin1という半角英数しか表示できないものになっています。

これでは困るので、MySQLのデフォルト文字コード設定をUTF-8に統一しておくとあとあと便利です。

ちなみに、Windowsだと設定ファイルmy.cnfが短縮ダイヤルになっているので、がんばってテキストエディタで編集してください。

上級トピック

PHP拡張とは?

PHPには色んな拡張機能があります。インストールはPECLなどを使うこともあって面倒ですが、試してみる価値は大です。

  • PDO…データベース接続
  • PHP_JSON…PHPの連想配列をJSONにしたり、JSONを連想配列にしたり
  • CURL…PHPでよそのサーバにアクセスしたり
  • GD・ImageMagick…jpegやpngファイルのサイズを変えたり

PEARとは?

PEARとは、PHPに新しい拡張機能をもたらすライブラリです。サーバにインストールしなくても(サーバの管理権限がない=共有サーバでも)使うことができます。PEARのインストールは簡単です。

  • XML_Serializer…XMLを連想配列に変換する。RSSを扱うときなどによく使う。
  • Services_Amazon…Amazonから商品情報を取得するときに便利。
  • Net_UserAgent_Mobile…携帯のキャリアや画面解像度、型番などを判別するときに使う。これなしでの携帯サイト開発は苦行。

PEAR入門 PHP標準ライブラリを極める!

PEAR入門 PHP標準ライブラリを極める! [書籍]

著者山田 祥寛

出版社翔泳社

出版日2005 年 9 月 9 日

商品カテゴリー大型本

ページ数352

ISBN4798109592

Supported by amazon Product Advertising API

携帯開発

PHPは携帯サイト開発にとても向いています。情報も豊富であり、なおかつ携帯の問題の多くが「端末ごとの表示方法が違いすぎる」という点にあるので、こういう時こそPHPの出番です。

上述したNet_userAgnet_Mobileのように、豊富なライブラリがたくさんあるので、PHPを覚えたら携帯サイト開発にチャレンジするとよいでしょう。

PHP×携帯サイト デベロッパーズバイブル

PHP×携帯サイト デベロッパーズバイブル [書籍]

著者荒木 稔

出版社ソフトバンククリエイティブ

出版日2008 年 9 月 27 日

商品カテゴリー大型本

ページ数348

ISBN4797348461

Supported by amazon Product Advertising API

PHPでのオブジェクト指向開発

オブジェクト指向については説明を省きますが、PHPはヴァージョン5からオブジェクト指向での開発ができるようになってきました。

ある程度慣れ親しんできたら、ぜひ手を出してみてください。適当な書籍はまだ見当たらないようですが、IBMのサイトをはじめとして、Web上に色んな資料があります。

オブジェクト指向だけだと何が便利なのかはわかりませんが、デザインパターンという概念を学ぶと、その利点がわかりやすくなります。武道でいう「形」みたいなものでしょうか。

余談ですが、PHPプログラマとして中級以上になるためには必要な条件は以下の通りです。

  • Webサーバ、DBサーバ、メールサーバをPHP用にチューニングして利用できる
  • オブジェクト指向の開発ができる
  • PHP4とPHP5の違いを知っている
  • フレームワークでの開発ができる
  • CMSのプラグイン・モジュールの開発ができる

案件ごとにアサインするタイプのエンジニア派遣を見ると、求められるスキルがわかりやすいです。

フレームワークの紹介

フレームワークとは、プログラミングを行うにあたってのルールのようなものです。

プログラミングを始めるとすぐにわかることですが、あるアルゴリズムを実現するためのプログラムというのは、どのようにでも書くことができます。ルールはプログラマの数だけ存在します。

しかし、人も世も激しく移り変わるこの時代、そうした「マイルール」を継承していくことはよくないことだというのが時代の風潮です。担当者が変わっただけで、ルールの引き継ぎという大変な作業が発生します。

こうした流れを受けて誕生したのがフレームワークという考え方です。RubyのフレームワークであるRuby On Railsで有名な格言はDRY(Don’t Repeat Yourself = 同じことを繰り返すな)やCOC(Convention Over Configuration = 規約は設定に勝る = 大きなルールに従い、例外だけを個別に設定していく)です。

あらかじめ決めたルールに乗っ取って開発した方が楽だという哲学に乗っ取るのが、フレームワークです。PHPにも、そうした工夫がいくつかあります。

CakePHP

Ruby On Railsの影響を受けて作られたフレームワーク。おそらく、日本語情報、世界シェアともに一番多い。

CakePHP1.2ガイドブック

CakePHP1.2ガイドブック [書籍]

著者安藤 祐介, 新原 雅司, 堂園 俊郎

出版社毎日コミュニケーションズ

出版日2009 年 6 月 27 日

商品カテゴリー単行本(ソフトカバー)

ページ数400

ISBN4839932468

Supported by amazon Product Advertising API

Symfony

PHPで有名な開発会社アシアルが激推ししているフレームワーク。OpnePNEもバージョン3からSymfonyを採用していたはず。

symfony×PHP [LLフレームワークBooks] (LLフレームワークBOOKS # 3)

symfony×PHP [LLフレームワークBooks] (LLフレームワークBOOKS # 3) [書籍]

著者森川 穣, 亀本 大地, 田中 正裕

出版社技術評論社

出版日2007 年 10 月 1 日

商品カテゴリー単行本(ソフトカバー)

ページ数208

ISBN4774132373

Supported by amazon Product Advertising API

ZendFramework

PHPを作ったZend社が考えたフレームワーク。細切れに使えるので、規約に縛られることが少ない。

PHPフレームワーク Zend Framework入門

PHPフレームワーク Zend Framework入門 [書籍]

著者藤野 真吾

クリエーターゼンド・ジャパン, ゼンド・ジャパン

出版社ソーテック社

出版日2007 年 9 月 13 日

商品カテゴリー単行本

ページ数336

ISBN4881665936

Supported by amazon Product Advertising API

PHPアプリケーションの紹介

PHPで作られたアプリケーションが幾つかあります。自分でショボい掲示板を作るのもいいですが、他人が作った優良アプリをいじりまわすことで見えてくるものもあります。

@2011/1/25追記 なんかこの記事のアクセス多いんですが、オープンソースPHP製ソフトウェアと利用のコツにもまとめときました。

CMS

WordPress

有名なブログエンジン。日本ではまだMovable Typeが有名だが、世界的に見れば圧倒的にWordPress。Smartyのようなテンプレートエンジンも使わず、フレームワークも採用していないので、PHP初心者にはもっともとっつきやすい。

オープンソース・ブログ構築ソフトWordPress2.7対応「導入&カスタマイズ」実践ガイド

オープンソース・ブログ構築ソフトWordPress2.7対応「導入&カスタマイズ」実践ガイド [書籍]

著者吉村 正春

出版社秀和システム

出版日2009 年 2 月 26 日

商品カテゴリー単行本

ページ数415

ISBN4798022012

Supported by amazon Product Advertising API

XoopsDrupalJoomla!

こちらはWordPressがブログエンジンとして明確な目的を持っているのと比較すると、モジュールやプラグインという形式で機能を追加できる。そのせいでキャラ立ちがせず、「その他大勢」といった印象になっている一面も…

Xoopsは日本での歴史が長く、情報も多いが、デフォルトがSmartyテンプレートエンジンを採用しているため、初心者がいじりやすいものではない。

Customizing XOOPS ~自由にデザイン・自在にHack

Customizing XOOPS ~自由にデザイン・自在にHack [書籍]

著者GIJOE, matchan

出版社毎日コミュニケーションズ

出版日2005-04

商品カテゴリー単行本

ページ数511

ISBN4839917795

Supported by amazon Product Advertising API

SNS

OpnePNE

日本製のオープンソースSNS。mixiクローンといってもよい。

バージョン3.0からSymfonyを採用しているため、本格的にいじるにはある程度の経験が必要。

OpenPNEオフィシャルガイドブック

OpenPNEオフィシャルガイドブック [書籍]

著者伊藤 幸夫, 田端 厚賢, 手嶋 守, 米田 聡

クリエーター株式会社手嶋屋, 株式会社手嶋屋

出版社毎日コミュニケーションズ

出版日2009 年 2 月 7 日

商品カテゴリー単行本(ソフトカバー)

ページ数504

ISBN4839922543

Supported by amazon Product Advertising API

ECサイト

EC-CubeZencartOSCommerce

Ec-Cubeは日本製。Smartyを採用している。共有レンタルサーバではSSLが使えないことが多いが、ちょっとしたECサイトならサクッと作れる。Zencart、OSCommerceは最近元気がない印象。

オープンソースECサイト構築ソフトEC-CUBE【Ver2.4.0対応】公式ガイドブック カスタマイズ編

オープンソースECサイト構築ソフトEC-CUBE【Ver2.4.0対応】公式ガイドブック カスタマイズ編 [書籍]

著者オレンジ 岸本, エスキュービズム

クリエーター福田 博一

出版社秀和システム

出版日2009 年 7 月 29 日

商品カテゴリー単行本

ページ数240

ISBN4798023388

Supported by amazon Product Advertising API

Wiki

WikiはPHP製のものが多くある。MediawikiPukiwikidokuwikiなど。

MediaWiki使いこなしガイド―あなたもWikipediaが作れる!

MediaWiki使いこなしガイド―あなたもWikipediaが作れる! [書籍]

著者鎌滝 雅久

出版社ソシム

出版日2007-09

商品カテゴリー単行本

ページ数263

ISBN4883375536

Supported by amazon Product Advertising API

CRM

SoyCMSSugarCRMなど。営業的な視点に立てば、ビジネスにおいて重要なのはこういうことだというのを教えてくれるツール。@2011/1/24 SoyCMSは名前の通りCMSです。なぜここに書いたかは忘れました。

メールとプロジェクトの紐付け、工数管理、工数あたりの単価計算、担当者のランク付けなど、お金に関する管理機能が山ほどあって、正直引きます。

BTS

開発者にとって欠かせないのは、コードの管理。誰がいつなにをいじったのか。バグはいつから発生するようになったのか。そういう問題を少しでもわかりやすくしてくれるのがバグ・トラッキング・システム(BTS)です。

PHP製のものは以下の2つ。

  • Mantis…カマキリ印のBTS。Firefox開発チームの使っているBugZillaに次ぐ歴史の古さだが、最近は人気がないっぽい。
  • Candycane…Ruby On Rails製の超絶BTS・RedmineのPHP移植版。CakePHPをベースに作られている。ただし、正式リリースはまだ。

まとめ

ここに書いてあることをちょっとずつやっていけば、なんとかなると思います。がんばってください。

 

フォローしてください

ここで会ったのもなにかの縁。
高橋文樹.comの最新情報を見逃さないためにもフォローをお願いします。
めったに送らないメルマガもあります。

SPONSORED LINK

この記事について

この記事はが2009 年 8 月 21 日にWeb制作の記事として公開しました。

高橋先生の電子書籍

高橋先生の電子書籍

Amazonで電子書籍も買えます。

好きな言葉

「せずにすめばありがたいのですが」
「頼めないのか」
「せずにすめばありがたいのです」

— ハーマン・メルヴィル

高橋先生の処女作

『途中下車』高橋文樹

2001年幻冬舎NET学生文学大賞受賞作です。

Web制作やります

Web制作やります

Web制作のご依頼は株式会社破滅派へ

不定期メルマガ

高橋文樹.comでは、不定期でニュースレターを配信しています。滅多に送らないので是非購読してください。

高橋文樹.comではプライバシーポリシーに準じて登録情報を取り扱います。