→言語・開発環境
→Webアプリ開発
→Amazon Web Service
- PHPとJavaのWeb開発における違い3選 - NRIネットコムBlog 2022.11
- DTOによる階層化アーキテクチャの実現
- NULLの扱いの違い
- PHPの場合は型の扱いが曖昧なため、nullは’’であり0でもあります。
- このためPHPでの開発に慣れ親しんだ人間がJavaの開発を行う際にNULLの扱いの考慮が漏れてしまう可能性があります
- Tomcatの前にNginxの配置
- PHPはスクリプト言語のためNginxやApacheなどのWebサーバ上で動きます。しかし、Javaはコンパイラ言語でありWebアプリケーションとして動かすためにはTomcatなどのサーブレットコンテナを立てる必要があります。Tomcatの前にNginxを立てる場合は、勿論ですが両者の間でのデータ通信が必要となります。
- プログラミング言語の優秀さと道具としての評価は別 2010.6.13
- 言語としての優秀さと道具としての評価は別の話ということだよね。これは言語の速度とアプリケーションの速度とは別の話であるのとよく似ている。Ruby や Python はプログラミング言語としてはすごくよくできているけども、Web アプリケーションを作る道具としての評価は、ワシからみると PHP とそれほどの差はない
- PHPのSession Adoptionは重大な脅威ではない 2009.5.16
- FirePHPがますます便利になっている件 2009.4.14
- Webデザイナが知っておくべきPHPセキュリティ 2008.4.11
- PHPでのスクレイピングに役立つライブラリ 2008.3.13
- PHPはダメな言語なのか? 2008.2.4
- PHPを仕事で使うときの注意(抜粋)
- 内部コードにはEUC-JPかUTF-8を使う。入出力もできるだけShift JISを避ける。Shift JISを使う場合には2byte目に0x5Cを含む文字の動作を忘れずに確認する。
- 開発環境の警告レベルをE_STRICTにする。本番環境ではdisplay_errorsをオフにする。
- register_globals、magic_quotesはオフにする。
- プレゼンテーションとロジックを分割すること。ロジックはSimpleTestを使って単体テストすること。
- SQL文に変数を埋め込むときにはプレースホルダを使う(PDOのprepareとbindParams)。
- リクエストから取得したパラメータを出力するときはhtmlspecialcharsを使う。
- 関数が長くなったら分割する(composite methodパターンを使おう)。
- 変数を定数として使わない。定数はdefineで定義するか、const宣言する。
- 常に最新バージョンでテストできる環境を作り、サービスイン後もバージョンアップに対応するための予算をとっておく---(サービスイン後にお金をかけたくないなら、PHPは避けるべき)。
- 継承を使うなら、クラス図くらいは書いておく(単にコードを再利用したいだけなら、移譲を検討すること)。
- 各URLにおけるパラメータとその閾値を文書化すること。パラメータの閾値の境界線についてソースレビューし、テストすること。
- 既存のフレームワークを学習することに投資すること(学習コストを嫌って自己流のフレームワークを作ることは、バグを作りこむことになるのでかえってコスト高になる)。
- PHPしか使えない作業者の成果物はこまめにレビューすること。
- コピー&ペーストプログラミングの匂いを発見したら、そのコードを書いた人にプログラミングの基礎を教えること。
- リファクタリングの時間をスケジュールに入れること。
- require/includeを条件文や関数宣言の中に記述しないこと。
- PHPがいかにダメな言語か 2008.1.26
- いろんなものがfalseだったりするせいで、新たな比較演算子「===」が必要
- hashやlistがobjectが区別できない
- オブジェクト指向機能が壊れている
- lambda(無名関数)がない。create_functionはlambdaじゃない
- short_open_tagsやらsafe_modeやらregister_globalsがonになってるかもしれない
- 一貫性のない名前(str_replace,strlen,parse_strとか)
- 引数の順番がわかりにくい(in_arrayとかstrposとか)
- strpos('abcd','a')は0を返すが、0は偽である
- PHPで書かれたたくさんのアプリがあるがどれもHTMLとロジックが分離されてない(本当?)
- 「PHPは初心者に学びやすい」と言われる。確かにそうかもしれないが、 おかげでどれだけのSQLインジェクションやらXSS脆弱性やら、 ひどいコードが放置されていることか
- グローバル。使うんじゃないってば。
Tips†
- PHPのバージョンをLinuxコンソールで確認したい場合、Linuxコンソールで
php -v
- すごいリロード対策
- 確認画面でチケットを発行し、セッションに保存しておきます。同時に完了画面へチケットがPOSTされるよう、hiddenにセット。こうして完了画面へ遷移させます。
- (いわゆるトランザクション・トークン)
- 単純に yum install php すると ver.5.4 がはいってしまう問題がある。2021.9
Windows2003+IIS6でのインストール方法†
- CGIの仕組みを使って動作させる方法と、ISAPIの仕組みで動作させる方法がある。
ISAPIの方がパフォーマンスが良いのでそちらを採用する。
- まずここへ行く
- ダウンロードはZIPになっているものとインストーラになっているものがあるが、
インストーラ版はCGIで動かすものしか入ってないのでZIPの方を取ってくる
- 「PHP 5.1.4 zip package [8,919Kb] - 04 May 2006」をクリック
- ZIPの中身を適当なフォルダに展開する。仮にd:\PHPとする
- D:\PHPにパスを切る。
- php.iniの設定をする。最低限、extention_dir と doc_rootの設定は必要らしい
- IISで公開するフォルダに対し、IUSR_XXXでスクリプト実行できるように設定する。
- IISのISAPIフィルタに php5isapi.dll を指定する。
- IISマネージャの「Webサービス拡張」に php5isapi.dll を登録する。
- IISマネージャのサイトのプロパティの「ドキュメント」タブの「規定のコンテンツページ」にindex.phpを追加する。
- 詳しくはこちらを見よ
Last-modified: 2024-01-24 (水) 18:36:16