Symfony2.0を試してみた。
11月 27th, 2011 by bontetsu
最近PHPのフレームワークであるSymfonyのバージョン2.0を試してみました。
断片的ではありますがその時感じたことなどのメモになります。
・DBの設定は画面上から行える(初期画面のconfigureリンクから)
・DB接続のパラメータを設定するファイル
app/config/parameters.ini
■1.4との違い
1.4でのview⇒2.0ではphpではなくtwigになっている
1.4のModel⇒2.0ではEntity
1.4のForm⇒2.0ではForm/Type
1.4のバリデーション⇒2.0ではFormではなくvalidation.ymlに定義してグループ分けをする
■定義を書かなければいけないファイル/ディレクトリなどは1.4と少し違うが、
基本的な考え方などは同じ
■チュートリアルのページ
http://docs.symfony.gr.jp/symfony2/osc2011-nagoya-symfony2-tutorial/symfony2-php-framework-development-tutorial.html
http://docs.symfony.gr.jp/sf2-blog-tutorial/
上記の2つのチュートリアルをやれば、1.4系を触ったことのある方は
何となく感覚はつかめると思います。
Tags: PHP, symfony, フレームワーク
Posted in PHP, フレームワーク | Comments (0)
PHPカンファレンス2011へ行ってきました(2)
9月 24th, 2011 by bontetsu
PHPカンファレンス2011に参加してきたので、その時のメモを公開したいと思います。
PHPカンファレンス2011へ行ってきました(1)の続きになります。
メモの内容には聞き間違い等あるかもしれませんがご容赦ください。
———————–
スタートsphinx
———————–
Sphinx:ドキュメントツール
ツリー構造の記述を行う
PDFを出力することができる
インストール
Windows:スタンドアロンで使える
Unix:easy_install(Phython)を使ってインストール
sphinx_quickstartコマンドで
最初のプロジェクトを作成、設定を行う
活用事例
・ドキュメントページの作成
・symfonyのマニュアルにも使われている
———————–
Cena-DTA:HTML5のローカルDBを使ったアプリ開発
———————–
Web SQL Database
→ブラウザの中でRDBを使えるようになった
Cena-DTA:
1回の登録で登録+変更が行える
mySQLのDBを作成し、そこに接続する
HTMLのソースから直接データをダウンロード/アップロードできる
サーバ側:PHP+mySQLで作られている
クライアント側:jQueryのプラグインを使う
サーバでデータを受け取って登録する部分がPHPで作られている
———————–
Large-Scale Data Processing
with Hadoop and PHP
———————–
Facebook:12TB/1日のデータが追加されている(2010年)
google:一か月あたり400PBのデータを扱っている
180GBのデータを読み取るのに45分かかる
メモリの量にも限度がある
解決法:パラレルI/O
I/Oボトルネックの問題:
データのあるところにコンピューティングリソースを持っていく
例:apacheログに対する処理
マッパー:ログを書き出すイメージ
↓
リデューサー:各IPごとに書き出す集約を行う
hadoop:
SQLのクエリを書く必要がない
Facebookでのデータの増加にも対応できている
Yahoo、Twitterでも使われている
インプットフォーマットを使うことによって
どのデータをどのように分けるかということを指定できる
障害に強い仕組みになっている
Hadoopは主にJavaで開発されているが、
PHPなどでもリデューサーは書ける
HadooPHP:HadoopでPHPを使うためのフレームワーク
———————–
Microsoft ? PHP ~ 3rd Stage ~
WebMatrix + Windows Azure!
———————–
マイクロソフトとPHPの歴史:
Windowsプラットフォームインストーラー
↓
Windowsウェブマトリクス
↓
Windows Azure+PHP
Windowsウェブマトリクス:OSSを使う/一から作る
→サイト作成に必要な機能を搭載
PHPのメジャーなアプリは殆ど収録されている
ASP.NETのテンプレートも使える
既存のサイトをウェブマトリクスに移行することもできる
エディタ機能もある
SSLの有無なども設定できる
ソースに問題があるかどうかチェックできる
DBの編集もできる
無償でダウンロードできる
あわせて使えるもの:
IEのF12キーを押す⇒開発ツールが使える
Expression Web Super View
Azure:空色の、という意味
WindowsサーバーベースのクラウドOS
ウェブマトリクスで作成したものを
Windows Azure上で動かすことができる
Azureのテンプレート作成
↓
ソースコードをコピー
↓
テスト環境を作成
(バーチャル環境のようなものができる)
↓
Azureへのパッケージ生成
リモートデスクトップでログインして
更新作業を行うこともできる
Azureのメリット:
・Paasなので管理いらず
・データセンターは数十万台規模
事例
トヨタ、ゲームサイトなど
EC-CUBE DAYでも話をする予定
———————–
徳丸本に学ぶ
安全なPHPアプリ開発の鉄則2011
———————–
■安全なPHP入門書で学ぶ:
XSSとSQLインジェクションぐらいは正しく覚える
セキュリティの甘いサンプルが載っている本もある
■入力、出力処理をしっかりやる
バリデーション
制御文字のチェック
「安全なSQLの呼び出し方」=IPAが公開している
準備文を使う
htmlspecialcharsを正しく使う
ファイルアップロードには罠がたくさんある:
アップロードされたファイルがPHPとして実行される
ファイル名が衝突してしまう
■文字コードのセキュリティを気にする
5c問題
■クリックジャッキング対策をする
クリックジャッキング:
透明なiframeを正しい画面の上に表示させて、
違う操作をさせること
X-FRAME-OPTIONSヘッダを指定する
(古いブラウザは対応していない)
CSRF対策をする
パスワードの保存はハッシュ化を繰り返す
7文字ぐらいのパスワードではすぐに破る
ツールがある
ハッシュ値にSalt値をつけるのがベター
ストレッチング:
ハッシュ化する計算を何度も繰り返す
■PHPのバージョンアップにとことん付き合う
———————–
ライトニングトーク
———————–
Making DSL with []
Paml→テンプレートエンジン
PHP:配列とハッシュの区別がない
PHP技術者認定試験:
ウィザード試験が始まる
sismo:
ciTool
テストツール
githubに対応
symfonyと同じ会社が作っている
Symfony2HttpCache
リバースプロキシを使う
→Cacheカーネルを使う
4倍ぐらい速くなる
クラウドを比べてみた:
HDDのスピード=かなり違う
GMO:1インスタンスに物理HDDを1つアサインしている
Symfony:behatというテストツールがある
PHP祭
10月15日、16日に大阪で開催
PHPBugs
バグ候補を指摘してくれる
(これから作成)
プロジェクトの規模が大きくなると
おかしいといわれているところが
本当におかしくなる
Ethna2.6
PHP5.3に対応
Tags: PHP, PHPカンファレンス, PHPカンファレンス2011
Posted in PHP, イベント | Comments (1)
PHPカンファレンス2011へ行ってきました(1)
9月 12th, 2011 by bontetsu
昨日PHPカンファレンス2011に参加してきたので、その時のメモを公開したいと思います。
当日は大勢の人が熱心に耳を傾けていました。
会場が満席で聞けない話があったのが少し残念と言えば残念でした。
メモの内容には聞き間違い等あるかもしれませんがご容赦ください。
——————
基調講演
——————-
PHPがブレイクしたのはver4.0(2000年)
PHPカンファレンスも2000年から
2004年ver5.0→オブジェクト指向
2009年ver5.3
ver5.4→5.3に比べると地味なアップデートになる
PHP
リリースサイクル1年
ライフサイクル3年(バグ修正2年、セキュリティ修正1年)
PHP5.4
9月半ばにβ版
今年中にはリリース
セーフモード、レジスタグローバル、マジッククォートはなくなる
SQLiteはver3のみとなる
5.3に比べて19%〜43%高速化
trait:コードを再利用する仕組み
多重継承よりもシンプル
オープンタグの短縮形が追加
配列の簡略定義が可能
配列デリファレンシング、
2進数表現が可能に
不正なUTF-8に対するチェックの強化
Unicode6.0のケータイ絵文字を収録
セキュリティに対して:
基本を守る
最新の情報をチェックする
Coverity→ソースをチェックするツール?
Coverityでスキャンした結果、PHPの品質は高かった
もっと高かったもの=Ruby
PHPの成功理由
・小規模〜大規模なサイト(Facebook,Yahoo!)までサポート
・言語がシンプルでドキュメントが充実
・必要十分な現実的な解を提供している
(キラーアプリの存在、モバイル対応、新標準への対応)
————————————————–
PHPライブラリの歩き方・作り方
————————————————–
技術の動向によって、ライブラリに求められる機能は増えていく
主なライブラリ
PEAR:570ぐらい
PECL:270ぐらい
Rubyなどでは1万を超えている
欲しいものがなければ作るしかない
ライブラリのパッケージ名:
ネームスペースを使うと良い
まだ使われていないものを使う
クラス読み込みの定義:PSR-0に従う
PSR-0に従うと
require_once,class_existsを使う必要がなくなる
例外処理:SPLを使う
マジックメソッドは学習を困難にさせる
ライブラリ:パッケージにまとめて配布する
Pyrus:
任意のディレクトリにPEARパッケージをインストールできる
パッケージの作成もできる
紹介していた本:
オープンソースの育て方
PHPカンファレンス2011へ行ってきました(2)へ続きます。
Tags: PHPカンファレンス
Posted in PHP, イベント, 講演 | Comments (0)
Windows7のwindows anytime upgradeはとても簡単でした
7月 3rd, 2011 by bontetsu
自宅のWindows7マシンでリモートデスクトップが使いたかったため、
Home premiumからProfessionalへアップグレードしてみました。
Home premiumのままだと、リモートデスクトップのホストになることができません。
お店で購入したパッケージには、インストール用メディアすら付いていませんでした。
パッケージの中に入っている説明書とプロダクトキーを利用して、
Windows updateと手順も時間もほぼ同程度で作業が終了。
簡単にOSをWindows7 Professionalにすることができました。
Windows Vistaの時はメディアを使ってOSの再インストールをする時と同じ位手間が
かかっていた記憶があるのですが、恐ろしいほど簡単になっています。
Tags: anytime upgrade, windows7
Posted in Windows | Comments (0)
古いインストールメディアでのWindows XPのインストール
4月 13th, 2011 by bontetsu
以前自宅のPC(CPUはPentium E9600の自作マシンです)にWindows XPをインストールし直そうとしたときに、インストール途中でエラーが発生して先に進めないことがありました。その際に思い出したのは、Windows XPが発売された当初はデュアルコアのCPUがまだ存在していなかったことです。
今でこそコアが複数存在するCPUが当たり前になってきていますが、私の持っているWindows XPのインストールCDは、サービスパックがでる以前の古いもので、まだCore2Duoも存在していなかった時のものです。試しにBIOSの設定を変更してシングルコアで動作するようにしたところ無事インストールすることができました。その後Windows Updateなどでアップデートを行い、BIOSの設定を戻すと普通に動作するようになります。
Tags: windowsXP, インストール, デュアルコア
Posted in Windows | Comments (0)
MacでPleiades All in One Eclipseを利用する
3月 28th, 2011 by bontetsu
Pleiades All in Oneという、Eclipseが日本語化されていて、必要なプラグインも一通りセットになっているという大変便利なものがあります。インストールもダウンロードしたものを配置するだけ、という簡単なもので、仕事でもよく利用しているのですが、それはWindowsだけの話でMacでは使えないと思っていました。
しかしMacでもそこまで簡単には行かないものの、ほぼ同じくらいの手間でインストールすることができます。
手順はWindowsの場合と少し異なるのですが、まず本家EclipseのサイトでEclipseをダウンロードしてからインストールします。その後、Pleiades All in Oneのサイトの「Pleiades 本体ダウンロード」と書かれているリンクから辿って行き、追加のプラグインをダウンロード、インストールするだけです。設定ファイルを書き換えなければ行けない部分があるのですが、手順はダウンロードしたファイルに含まれているreadme.txtに書かれています。
実際にインストールしてみたのですが思っていたよりも難しくありませんでした。
Tags: eclipse, Mac
Posted in Mac | Comments (0)
print_r()の第二引数
3月 1st, 2011 by bontetsu
PHPの関数にprint_r()関数というものがあります。
引数に指定した内容を出力してくれる関数で、ファイル出力やデバッグの際に利用する機会の多い関数ですが、このprint_r関数の第二引数にtrueを指定すると、戻り値として第一引数に指定したものを戻すことができます。
デバッグログで配列の構造を確認したい場合などにとても便利に利用することができます。
Tags: PHP, print_r, デバッグ
Posted in PHP | Comments (0)
Mac版XAMPPとMediaWikiの組み合わせで動かしてみようとしている人は注意
2月 25th, 2011 by bontetsu
最近MediaWikiをインストールして動かしてみようと思ったのですが、
XAMPPのドキュメントルートにMediaWikiのソースを配置してブラウザ上のインストーラ画面から設定している最中に、「PHP5.3.1では動かせない」旨のエラーメッセージが出力されて、それ以上先に進めなくなりました。
PHP5.3.1にはバグが存在していて、MediaWikiではわざと動作させない仕組みになっているみたいです。
ネットで少し検索してみたところ、MediaWikiの英語版のサイトに
Please note that MediaWiki does not work with the current version XAMPP 1.7.3, as it uses PHP 5.3.1, which has a bug, making it incompatible with MediaWiki. Either use XAMPP 1.7.2, or use the XAMPP 1.7.4 beta.
との注意書きが赤字で書いてありました。
XAMPPは簡単にPHP+MySQLの環境が作れるので、使っている方も多いと思います。
Windows版のXAMPPはすでにバージョン1.7.4が公開されているので問題はなさそうですが、Mac版のXAMPPは2011/2/24現在の最新バージョンがまだ1.7.3で、普通にXAMPPのサイトからダウンロードしてインストールするとこのバージョンになってしまいます。
sourceforge.netから1.7.4 betaをダウンロードしてインストールし直すとすんなり動くようになりました。
Tags: MediaWiki, PHP, XAMPP
Posted in PHP | Comments (0)
symfonyに関する本はなぜ少ないのか
2月 16th, 2011 by bontetsu
最近仕事でsymfonyを扱うことが多いです。
symfonyはPHPのフレームワークの一種なのですが、symfonyを扱い始めた頃、書店で入門書を探してもなぜかあまり見つからない、置いてあっても古いバージョンのsymfonyを扱っているものが多い、ということがありました。
最近、その理由はネット上でのチュートリアルが充実しているからではないかと思っています。たとえば、symfonyにはjobeetという公式のチュートリアル的なものがあるのですが、日本語で書かれているのはもちろん、バージョンごと、さらにはORマッピングの方式ごとにまとめられていて、ここだけで書店に置いてある「○○入門」のような入門書に匹敵する内容のことが書かれています。
仕事場の机の上に本を並べられないのは少し寂しい気もしますが・・・
Tags: PHP, symfony, フレームワーク
Posted in PHP, フレームワーク | Comments (3)
「Think!提携講座 特別編 野中郁次郎×奥山清行が語る、日本のモノづくりに大切なこと ~稲葉製作所が挑む“Premium Innovation”~」を聞いてきました。
2月 11th, 2011 by bontetsu
去る2月2日、六本木ヒルズにて、
「Think!提携講座 特別編
野中郁次郎×奥山清行が語る、日本のモノづくりに大切なこと
~稲葉製作所が挑む“Premium Innovation”~」
の講演を聞いてきましたので、その際のメモを公開したいと思います。
聞き違い等あるかもしれませんがご容赦ください。
————————————————————
「ものづくり」と「ことづくり」の未来
————————————————————
職人:
・肉体労働者のように見える
・実際は創意工夫を行い、
余計に見えるところまで改善する
B級の職人:
言葉に変えて人に教えられる
A級の職人:
言葉では伝えられないことまで知っている
→徒弟制度で伝わってきた
A級の職人のノウハウが途絶えつつある:
終身雇用の崩壊等による
世界的な問題
職人=知識労働
フェラーリに世界の人たちが憧れる理由
→職人さんがいる
ヨーロッパ:
過去から未来へつながるものづくりをしている
技術単体に価値はない
イノベーション:
最新の技術だけではなく
枯れた技術からも起こりうる
例:ウォークマン→エクスペリエンスデザイン
どうやって顧客価値をつくりだすか?
(仕方なく買うのではなく、買いたくて仕方のないもの)
ものを使って何をするかという「ことづくり」
ことづくりがあってものは生きてくる
ヨーロッパのもの:
ものを使うことによってどんな生活が送れるか
想像できる=売れる
稲葉製作所:すごい技術を持っている(アルミダイギャスト、Xair)
流通:
お客さんの意見を肌で感じる
—————————————
知識基盤
ビジネス・イノベーション
—————————————
組織でどうやって知識をクリエイトしていくか
知識:
関係性、知識を使う人の想いで変わってくる
経験=暗黙知
→言語化することによってよみがえる
→暗黙知もまた養われる(還元される)
ことづくりはものづくり:
人間はユニークな経験そのもの
一人一人の主観
→みんなの主観にしていく(イノベーション)
ビジネスモデル
→「知」を利潤の流れに変換していく
イノベーション=新しい価値の提供
ものを組み込んだことづくり
iPad:
遊べる、仕事ができる、人とつながれる
→ものにことが組み込まれているから売れる
どうやって価値命題をつくりだすか
実践知だけが日常の課題を解決できる
創造とは、一回性の中に普遍を見ること
ものづくりのないことづくりはない
————————————-
パネルディスカッション
————————————-
日本:ものと心は同一
アメリカ:
ものづくりを否定している
その先のお金を出しすぎている
お金を稼いでどうするのかが考えられていない
イタリア:
過去と未来を普通の人がものすごくよく見ている
日本もことを意識できる段階まできた
ことを読む力を育成する能力:
匠→何がよいかを無限に追求していく
仮説→検証を無限に繰り返していく(スパイラル)
ビジネスモデルを持っていないと知を利益に変えられない
アジャイル、スクラム→ICTではメインストリーム
ペアプログラミング:ICTと徒弟制度の融合
地域を開いて知を総合していく:
その媒体は企業
Tags: Think!, ことづくり, ものづくり, イノベーション, 六本木ヒルズ, 奥山清行, 野中郁次郎
Posted in 講演 | Comments (0)