goo blog サービス終了のお知らせ 

ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

「いまどきのPHP開発現場 2015年秋」を聞いてきた!

2015-10-05 15:30:26 | PHP
10月3日に、PHPカンファレンス2015に行ってきた!話の続き
「いまどきのPHP開発現場 2015年秋」
をめもめも




・自己紹介
 Laravelリファレンス(仮)という本が出る
  Laravel5.1(LTS)
・PHP開発現場
 NotePC→GitHub→Travis(CIサーバー)→Heroku

・コードを描くツールから・・PHP Storm
・PHP Storm
 JetBrain社のIDE(有償)
 動作が警戒、静的解析、オールインワン
 Vimmerも納得のIdeaVIM

 デモ:補完の

 コードフォーマット
 Gitクライアントが入っている
  →自動整形でコミット

・Vagrant
 (会場で)使っている人8割
 ・プロジェクト毎に独立した環境
 ・自動構築
 ・チームで同じ環境を利用
 ・運用環境と同じ環境
 導入ポイント
  PHPコードと一緒に管理
  とことん自動化(vagrant upで完了)
  プロビジョニングはVMの中で実行(ゲストがわにAnsible)
  Shell Script→Ansibleが楽

・フレームワーク
 コンポーネント指向が主流
  Synfony/Zend Framework/Aura
  CakePHP 3/Laravel/BEAR.Sunday
 コンポーネントを分離して利用できる
 他のフレームワークを利用

・Laravel
 Symfonyコンポーネントを多数利用
 (独自解釈したSymfornyともいえる)
 いいとこどり
 Laravelもコンポーネントとして利用可能

・フレームワークの付き合い方
 フレームワークに従うのではなく、アプリケーションの部品として使う
 フレームワーク on フレームワーク
 インハウスフレームワーク(おれおれフレームワーク)

・CI(継続的インテグレーション)
 (会場で)使っている人?さっきより、ぐっとへる
 git push/PRを検知して、タスク自動実行
 自前ならJenkins
 Travis CI/Circle CI

・Travis CI
 GitHubと連携
 travis.ymlに実行内容を記述

Scrutinizer
 コードフォーマット、静的解析のSaaS、指摘表示

・PaaS
 HerokuがPHPを正式サポート(2014年)
 Azure web Apps(国内リージョン)
 サーバーセットアップ自動
 Gitでデプロイしてすぐ使える
 サーバーメンテナンス不要
 Herokuは無料枠有

・まとめ
 ツールやサービスに任せる
 やるべきことに集中
 ツールに導かれる



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPカンファレンスに行ってきた!-PHP7の話とか

2015-10-03 21:43:47 | PHP
今日(10月3日)PHPカンファレンス2015に行ってきた!
まずは、一番初めのオープニングをメモメモ




■実行委員長ごあいさつ
・PHP生誕20周年→PIOでやったよ。前から詰めてすわってね
・PHP7にちなんで、7がテーマ
・スポンサーブースまわってね
・スタンプラリー開催
・英語セッション4人
・サイン会
・お昼、お弁当とオムライス販売
・SNSで情報発信 #phpcon2015
・トラックごとで
・会場内Wifi
・フィードバック
・はじめるよ

■PHPの今とこれから2015
・7
 PHP7がでる。どんなことに気をつけないといけないか

・PHPとは
 主にWebで使われるスクリプト言語
 1995年の誕生以来成長
 スクリプト言語で最大、CMSシェアでもWordPress(PHPでできてる)

・主に使っているPHPのバージョン
 マジョリティー5.3、5.4がふぃえている。5.5が大幅増
 (でも、会場は5.6が多い)
 サポート切れの5.4を使っているユーザー84%
・20年の歴史の中で半分くらい5
・Unicodeに失敗で6なくなる
・5.4までで完成度高い
・7があと1月ちょっとで出てくる
 メインは高速化
・PHPのリリースサイクル
  1年で、点なんとかがあがる
  ライフサイクル3年(5.4から)
  1つきごとにバグ修正
・PHP7
 大幅高速化
 致命的エラーを例外補足可能
   :
・より早く、快適に
  ベンチマーク実行すると、大幅高速化 HHVMはかなり早い
  →内部の見直し
  マイクロベンチ
 Wordpress4.4ベンチマーク
  倍くらいの性能(チューニングすると3倍)
  アプリによるけど(DBから引っ張ってると厳しいかも)
・型宣言が使える
  デフォルトは従来と同じ
  Strictモード(宣言する)と、型チェック
・致命的エラーのスローキャッチ:例外処理可能
・スペースシップ演算子
・パーサーとコンパイラを分離(2パスになる)
・互換性に関して
 (大きな変更はない)
 エクステンション削除:mysqlなくなる
 SAPIが22種類→7種類
 ASP、Script廃止
 PHP4形式のコンストラクタ
 エクステンションは要変更 gophp7

・HHVM/Hackの進化
 LTSリリース3.3、3.6
 3.8でさらに高速化:PHP7よりも平均10~20%高速
 非同期クエリ(MySQL)による高速化を模索

・PHPのこれから
 PHP7.1開発が開始される
 PCO(PHP Cryptography Object):暗号化
 JIT?

・PHPの未来
 Hack/HHMVリリースの持つ意味
  PHP7は劇的に進化した。そしてこれからも・・・
 高性能かつ現実的な解を継続的に提供する

・日本PHPユーザー会
・PHP Confarence 2015の見どころ

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPフレームワーク4本勝負を、昨日(8/5)聞いてきた

2015-08-06 02:12:40 | PHP
内容をメモメモ


■あいさつ
自己紹介
ヒトメディアナイトについて
the p@rkについて
 イノベーションサロン

■Laravelを選んだ理由
インタースペースの人

・比べてみれば、やっぱりLaravel(ららべる)
・自己紹介
・インタースペースについて:アクセストレード
・メディアデベロップメント→Laravel4,5
・codelgniter
・Laravelを選んだ理由
・背景
 PHPエンジニアが全然いない
 片手間でWebサイト
   Symfony
   CakePHP Bake
 それ以外使いたい→でもジェネレーターはほしい→自分で作る
 Fuel PHP ことばでプログラミング
・レイアウト出力の違い
  Codelgniter X
  Fuel PHP こんとろーらーがおでぶ
  Laravel レイアウト継承

・ルーティング設定ファイル
  Laravel きれいにかける

・EloquentのQueryBuilder
・パッケージが充実
・他にも触ると楽しいこといっぱい
・最後に エンジニア採用してます!

■CakePHPを使っています
うるる
・自己紹介
・うるるについて:shufti
  クラウドの労働力を活用
・導入:2008年
・導入理由:はやっている
・シンプルな仕組みでわかりやすい
・元気なコミュニティ
・構成:CakePHP,AWS
・中規模開発
・Github,Jenkins,Dockerで並列→リリース頻度あがる
・phinxで代用
・デプロイ自動化:whenever
・辛い点
 下位互換が弱い
 Model/Entity
・最近は:組織はアーキテクチャに従う
・Viewを疎結合に
・API化が進めば・・・一部切り出し、お試し
・フルリプレイス怖い
・えりくさーがおもしろいelxir
・速度解析
・ビジネスロジック:モデルにおしこんでる

■YiiFramework
・弁護士どっとこむの紹介
・Yii Yes it is
・高速
・旧共産圏で人気
・そこそこ高速、低オーバーヘッド
・MVCから外れた拡張、PHPらしい割り切り
・Yiiはアクションをクラスとして切り出すこと可能
・FatControllerはムシ
・ベトナムのオフショア開発向き?
・なぜYii
 最終的には、好みで決定
・PHPのメジャーなフレームワークに大きな違いはない?
・サービスライフサイクルとフレームワーク
  立ち上げ期と成長期

■Web Application with Symfony2+silex
ヒトメディアのひと
・自己紹介
・会社紹介
・やっていること:受託
・applyjapan
  パッケージではない
  大学ごとにカスタマイズ
  共通にできるところもある
・第0世代
  ethna
 第1世代
  symfony1.4
 第2世代
  zf2
 第3・4世代
  silex(symfony2.3+)
・symfonyいいところ
  疎結合の柔軟さ
  LTS
  コンポーネント単位
・symfony悪いところ
  学習コスト高さ(Form,Seculity)
  ややおそい
  エンジニア少ない
・Silexよいところ
  マイクロフレームワーク(いんすぱいや しなとら)
・わるいところ
  symfonyエコシステムに乗り切れない
・doctrine
・サブドメインで大学変わる
・フレームワークで解決できない問題
・ブラウザごとのリグレッションテスト
・今後の対応

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

CakePHP2.6を、BitnamiでインストールしたRedMine上で動かす

2015-07-15 12:46:06 | PHP
BitnamiでRedMineをインストールしてしまうと、localhostが、
Bitnamiのapache2になっている。

PHPをやるときにわざわざ切り替えるのもめんどくさいなあ・・・
と思っていたら、localhost/phpmyadminってやったら、
PHPMyAdminが出てくる・・・ってことは、PHPうごくんじゃん!

ということで、

 CakePHPをBitnamiでインストールしたRedMine上で動かす

ことにチャレンジ




でも、CakePHP3.0でやって、玉砕した・・・

ダウンロードして、ComposerでBookmarkerというのをつくって、
おいてみたんだけど、ルーティングはうまくいって、
webroot/index.phpをみてるんだけど、
どうも、use のところで引っかかってる。
そうすると、ディスパッチのところがうまく動かない・・・

(メモメモ)
cd C:\Bitnami\redmine-2.6.0-3\apache2\htdocs\cakephp-3.0.7
php /Bitnami/redmine-2.6.0-3/php/composer.phar create-project --prefer-dist -s dev cakephp/app bookmarker

を実行したら、バージョンが古いとおこられたので

php /Bitnami/redmine-2.6.0-3/php/composer.phar self-update

でアップデートしてから、再度行った。
けど、上記のようにだめだった。




あ~時間が無い・・・
ということで、CakePHP2.6でやることにした。

CakePHP2.6.7安定版を
http://cakephp.jp/
から落としてきて、zipファイルを解凍

cakephp-2.6.7

っていうフォルダーができるから、そしたら

C:\Bitnami\redmine-2.6.0-3\apache2\htdocs

の下に、そのcakephp-2.6.7フォルダをおき、
ブラウザから

http://localhost/cakephp-2.6.7/

をアクセス

CakePHP2.4系のインストールと設定方法
http://www.beeete2.com/blog/?p=821

に出ている、赤と黄色の画面がでるところまできた。

・・・けどもう、この先をやっている時間なさそう・・・

っていうことで、ここまでやりかたをメモメモして、
一時休憩(上記サイトの設定はまだやっていない)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPの大幅速度カイゼンはPHP7・・・それ以前にバージョンアップは・・・

2015-03-18 12:40:37 | PHP
昨日、PHPの性能改善を行うために、どこに手を入れたらよいか、
わかるには、Zend Serverを使えば・・・という話を書いた
が、
もちろん、PHP処理系それ自体が速くなれば、もっと簡単に?
性能改善できるわけだ・・・

・・・だが、この路線はちょっと難しそうに思える。




PHPの速度カイゼンとしては、facebookの
HHVMがある。
これに対向した、PHPNG→PHP7は、確かに
(HHVMほどではないにしても)速いのかもしれない。

【参考サイト】

1.PHP7 (phpng) をインストールして爆速体験をしてみる。
  http://qiita.com/y_irabu/items/1bbd8961c9a530cbb8eb

2. PHP7はなぜ速いのか(zval編)
  http://d.hatena.ne.jp/hnw/20141207

しかし、PHP7が、いますぐ出てくるわけではない。
なので、7が出るから速くなるという線は実務上、今は使えない




zend serverをいれても、速くなるそうだ。
というのは、あらかじめコンパイルしておき、
requireの依存関係などが、すぐに読み込めるようになっている
・・・などなどの努力をしているかららしい




しかし、それどころか、実際は、バージョンアップだけでも
難しいかもしれない。

今、サポートされているPHPのバージョンは
5.4,5.5,5.6となる。
また、さっきの参考サイト2をみても、
5.3から5.4に上げると、2割増しぐらい、
速くなりそうだ。

ってことは、5.3以前のバージョンを使っているひとは
5.4以降に移行したほうがいいことになる。
なんたって、EOLなのだから・・・5.3以前は。
(RedHatはサポートしてれるかもしれないけど)




しかし、

PHP Install Statistics
http://blog.ircmaxell.com/2014/12/php-install-statistics.html

に、安全なPHPのバージョンを利用しているのは25.94%しかない。

つまり、PHPの場合、あまりバージョンアップをする人は、あまりいない。
(脆弱性の問題があっても)

ってことからすると、ましてや性能向上のために、バージョンアップ
なんていう人は、いなさそうだね・・・

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPの性能改善が必要な場合

2015-03-17 07:06:36 | PHP
PHPで開発した場合、
システムの入出力はあっているのだが、
パフォーマンスに問題がある
(処理時間が長い、画面遷移が遅いなど)
ということがある。




請負で開発している場合は、なんとかしないといけない。

こういうときに、

PHPの動作状況(各関数の経過時間や利用メモリ量)が分かる「コードトラッキング」の方法
http://blog.goo.ne.jp/XMLDTP/e/80f7182984c441f955038fa99cfa1aa6

で書いたzend-serverは、大変便利で、

Z-Rayを使うと、1つの画面遷移に対して、
PHP,データベース、I/O、ネットワークの処理時間を
返してくれるから、大雑把にどこに問題があるかわかり、

ネットワーク以外の問題であれば、さらに、
コードトラッキングを使って、どの関数が
時間がかかっているのかが分かる。




同じことをログに処理時間を出力させると、
ログに書き出す時間が問題になったり、
見にくかったりと、いろいろたいへん
その辺をすっきりグラフ化してくれるので、
開発者同士、お客さんに見せるのにもいい。

Zend Server 7 Small Business
(PKG-1184)が年間ライセンス30万なので
デバッガ1人月よりかは安い。
となってくると、請負の場合、コレだけの仕事するんなら、
zend server買ったほうが安いか?っていう話になる。




しかし、最近はSESがおおい。SESの場合、
「パフォーマンス悪いですねえ。」
「そーですねえ・・・」
で済んでしまう場合もあるし、さらに、ログを入れて解析する
仕事をする人を雇えば、プログラマを派遣している会社は
儲かるという側面がある。

また、開発と品質保証部門が分かれている場合、
「パフォーマンスの向上は品質保証部門がやることなので、
 開発がやってはいけない」と、怒られるケースがある
(少なくとも私は怒られた経験がある)
→品質保証部門が行わなかった場合、悪いコードが入ったままとなる




つまり、SESの場合、請負にくらべ、(Zend serverのような
高生産性ツールを使わないほうが儲かるから)クオリティも
生産性も下がっていく可能性は高い。
日本はそちらの方向に向かっている。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPの動作状況(各関数の経過時間や利用メモリ量)が分かる「コードトラッキング」の方法

2015-02-16 11:07:19 | PHP
Zendサーバーを使うと、PHPプログラムについて
 ブラウザから、サーバーでのPHPプログラムの負荷がわかる。
 PHPプログラムの各関数の動作状況(経過時間や利用メモリ量)が分かる。

前者がZ-Rayといわれるもので、

後者がコードトラッキングといわれるものだ。

Z-Rayについては

Zendサーバーをインストールし、PHPのサーバー側情報が見れるZ-Rayを表示させる
http://ameblo.jp/smeokano/entry-11988871588.html

に書かれているので、そちらを見てもらうにして、

ここでは、コードトラッキングについて書くことにする。




■前提

上記ブログの記事にあるように、Zendサーバーはインストールされているとする。
上記ブログの指示通りにインストールすると

ローカルサーバー
http://localhost:8000

Zend管理用サーバー
http://localhost:10081/ZendServer/

となる。私の環境も、すでにApacheが入っていて、ほかのことで
ポート80番がふさがれている。そこで、上記の例に従う。

ただし、ポート80番を何も使っていないで、デフォルトインストールした人は

ローカルサーバー
http://localhost

となる(8000はいらない)

------

また、今、HelloZendというプログラムが、

C:\Program Files (x86)\Zend\Apache2\htdocs

の下に入っている。C:\Program Files (x86)は、インストール先のフォルダ
なので、人によっては、ちがっているかも・・

ローカルサーバー、Zend管理用サーバーとも上がっている。
なので、ブラウザから

http://localhost:8000/HelloZend

にアクセスできる状態になっている。




■起動まで

まずは、Zend管理用サーバーを立ち上げる。

http://localhost:10081/ZendServer/

にアクセスすると、

とパスワードを入れる画面になるので、インストール時に設定したパスワードを入力
そうすると、いつもの画面になるので、

OverviewタブのCode Tracingを選択(クリック)

画面が変わって、左から

・URLを入れる(今回はhttp://localhost:8000/HelloZend)
・GETかPOSTか指定する  
・そしたらCreate Traceボタンをクリック

実行できると、下のように実行結果がでるので、チェックして(しなくても行くかな?)
IDをクリック

そうすると、処理内容と、かかった時間が表示される
中を細かく見ることも出来る。

チェックを入れると、メモリ利用量なども見える



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

CentOSでMySQLいれて、PHPでアクセスするまで

2014-12-25 12:40:19 | PHP
やったことについて、自分へのメモ

■前提
・Apacheは動いている
・PHPも動いて、phpinfo.phpが見れる
・カーネルの確認
  cat /etc/redhat-release
 したら、CentOS

■作業
(前提)root権限で入っている

(1)mysqlインストール・起動

yum install mysql-server
yum install mysql-devel
/etc/init.d/mysqld start

(2)確認
mysql -u root
*はじめはrootのパスワードが設定していないので、これで入れる
*show databases;などして、exitで抜ける

(3)phpとの接続関係インストール
yum install php-mysql
yum install php-mbstring

(4)apache再起動
/etc/init.d/httpd stop
/etc/init.d/httpd start

(5)phpinfo.phpで、mysqlが動いているか確認

(6)接続プログラム
http://www.phpbook.jp/tutorial/mysql/index3.html
の下のほうにあるtest1.phpの
   ユーザー名 root
   パスワード なし(最後の,'testuser'を削除)
して保存、それをアクセスに行く。


■参考

http://changineer.info/server/mysql/mysql_installation_linux.html
http://d.hatena.ne.jp/rx7/20081010/p2
https://tamosblog.wordpress.com/2012/06/15/centos_web/

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPの新しい実行環境HHVMについて聞いてきた

2014-10-13 13:00:46 | PHP
10月11日、PHP Conference 2014に行ってきて、聞いて聞いた内容をメモメモ

次は

HHVM-PHP++

を、開発しているえらい人から、きいてきた




Who
OpenGraphプロジェクト
HHVM

PHPとは何なのか

HHVM
・ソーストランスフォーマーでない
・HHVM:全部やってくれればいいけど
  新しいフィーチャー全て
  HHVMならではのものも
・HHVMはどれくらいPHPに近いもの
  60%
  →でも使ってないエクステンション、エラーメッセージはマッチしなくても
  実際の環境では問題にならない
  100% 26フレームワーク
・HHVM
  ubuntuパッケージ構築した
  ないとりーも作った
   deb http://dl.hhvm.com/ubuntu trusty main
   apt-get update
   apt-getインストール
  でびあんもうじき

・gcc4.6以降を使ってビルドする

・コンパイルできたら・・
  nginxの設定
  hhvmの設定

オープンソースのプロセス
・2010年 スコットがHHPC
・2012年 HipHop HPHPC 1人フルタイムで
・2013年 HHVM→今6人
・2014年 HHVM CI、オープンソース、ドキュメントも書いた!
       Hackも公開

HHVMコミュニティ
  Wikipedia→HHVMへ

使っている
  Facebook,bidu wikiedia,GREE
  1ヶ月に3万ダウンロード

JIT
 まずPHPがどう動くか;バイトコードインタープリター
 変更されていたら、バイトコードコンパイル実行
 変更されていなければ、インタープリティング
 HHMV
   頻繁に使われてる:ホット→ネイティブにコンパイル実行
   実環境でコンパイルすべきでない

Magento
 200→62
 他のページも3倍くらい早くなっている
Symfony
 2倍のスピードアップ
パフォーマンススイート→3日前にリリース(Read.Me)
  初めての発表

Hackについて聞いたことがある
・PHPから拡張、取り除いた部分
・PHPコード例
  グリーンの部分がHACK:パラメータ、返り値の型
  プログラムを実行しないでも見極める
  ジェネレーション <T>を使って
  コレクション ライブラリできている。arrayも
  Async Function:マルチタスク
  ユーザーアトリビュート <>つけて、好きなものいれる
  XHP(XHtml for PHP):XSS対策

・デモ:型チェクなど

・Hack:hh_serverで走っていく
 convert PHPをHackバージョンにしたら?
 グリーンの部分

・FacebookのHack化

・HPHPd:HPHPデバッガー
 コマンドライン上で

・PHP言語仕様
  PHPを検証→300ページのドキュメント

質問
エコシステム
 HHVMはPHPと同じでないので変換必要
Facebookは
 HHVMにコミット。
 すべてオープンソース化
HTTPからFastCGI
CentOS版

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「最新SPA開発を学ぼう ウェブエンジニアのためのAngular.js入門」

2014-10-13 08:58:25 | PHP
10月11日、PHP Conference 2014に行ってきて、聞いて聞いた内容をメモメモ

次は「最新SPA開発を学ぼう ウェブエンジニアのためのAngular.js入門」をメモメモ




・SPAって何?
  Single Page Application
  1つのページでアプリが完結する
 より流動的なUX
   いままで→マルチページアプリケーション:URLで遷移
    URL遷移はUX的には断絶
   DOM操作で画面遷移
 なぜ、SPA開発が増えている?
   デスクトップアプリのUXをウェブへ
   RIAプラットフォームの受け皿→HTML5のSPAへ
     apache flex ,curl, silverlight
   基礎技術の確立
     pushStateなどHistoryAPI
     JSライブラリ、フレームワーク
     JavaScript実行高速化
   利用されるフレームワーク:たくさんある
     今日はAngularJS
・AngularJSの特徴
  HTMLを拡張してアプリを記述
  SPAに適した機能セット
   ルーティング
   データバインディング
   DIコンテナ
   ディレクティブ

  ルーティング
   URLのハッシュやHistoryAPIでビュー切り替え
   画面の一部が遷移
    ng-view:サーバーサイドのルーティングににてる
    なぜ必要:なくても良い

  データバインディング
    JSオブジェクトとDOMを結びつける
    スコープ:DOMツリーと一対
    ng-controller
    テンプレートエンジンではない→即座にDOMに反映
   →今ではモダンJSフレームワークではほぼ必須機能
    JQuery的手続き処理からの脱却

DIコンテナ
   DIパターン
   依存を外から渡してもらう設計パターン
   DIコンテナ使うと比較的簡単にできる

  ディレクティブ
   ng-click
   ディレクティブのしくみ
    →タグとして使える

まとめ

Q&A
SPAの弱点:SEOがきかない

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

mysqlnd VS libmysql

2014-10-12 18:42:34 | PHP
きのう(10/11)、PHP Conference 2014に行ってきて、聞いて聞いた内容をメモメモ

次は

mysqlnd徹底解説




MySQLクライアントライブラリ
mysql extention
mysqli
pdo extention
→直接つながっているわけではない
  ネットワークアクセスなどは、mysqlnd,libmysqlがやっている

libmysql VS mysqlnd
位置が重要
  mysqlnd→ZENDエンジン内
  libmysqlclient→connector/c
   CライブラリでMySQL AB時代
  mysqlnd
   PHPエクステンション、コミュニティで書かれている
コンパイル時に決定される
5.3以前のバージョンmysqlndなかった
5.3でオプション
5.4でデフォルトになった
→libmysqlclientは今後もサポート(非推奨ではない)
確認方法
 phpinfoにかかれている

理由
・ライセンスの問題
  mysqlndはphpライセンス

非互換のポイント
・OLD_PASSWORDは使えない(mysql4.1以前、以降でもOLD_PASSWORD指定)
・my.cnfはよまない

プラグイン

mysqlndインターナル
・プリペアードステートメント
  サーバーサイド
  クライアント
 →戻ってくるプロトコルが違う
 →型が変わってくる
→Stringで取れていたのが、integerになるとか
mysqliを使ってると、はまらない

メモリ使用量
・mysqlndは、結果セットをそのまま返している
・libmysqlはPHPの外でメモリを使う
   →getmemoryusageで注意
・フェッチを何回もすると、メモリ増え続ける
  解決手段
MYSQLI_STORE_RESULT_COPY_DATA
  →libmysqlと同じ動き
 MySQLiで、5.6以降
 →PDOでは、メモリを多く食う
・MySQLiを使いましょう

Q&A
Q:サーバーサイドを使った理由は?
A:サーバーサイドのほうがあんぜんじゃねーのと思ったから

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「PHPコアから読み解くPHP5.5」を聞いてきた!

2014-10-12 13:39:49 | PHP
きのう(10/11)、PHP Conference 2014に行ってきて、聞いて聞いた内容をメモメモ

次は

PHPコアから読み解くPHP5.5

5.5以上使っている人→いっぱい
PHPコア知ってる人→少数
Zend エンジン使っている人→いっぱい??(・・・コア知らないのに・・・)

・PHPコア
 PHPの内部システムでC言語で記述されている
 この内部にある言語エンジンがzendエンジン
 Zendエンジン:字句解析、構文解析(ばいそん)→オペコード

 zend_なんとか・・
 PHP_なんとか

 PHPコアを知れば、良いコード

・PHP5.5の主な新機能
  ジェネレーターの追加
  boolvalの追加
  zend_execute()オーバーライド不可

・ジェネレータ
 yield(いーるど)使っている人は?
 →イテレーターを実装
 イテレーターはデータの要素にアクセスするための仕組み
   Cのポインタもそう

 例:3つのファイルにそれぞれ別の処理を行う
  yieldを使わない
   ファイルをオープンして1行筒読み込みファイルクローズを
   みんなする
  yieldを使う
   →共通するイテレーション処理を一度定義するだけでよい

 PHPコアの観点から
  オペコード;短くならない→今回のみ
  でも処理スピード速くなる(遅くならない)

 簡単にイテレーターを実装できるので使いましょう

・boolval()
  値の型を変換するcastと同じ
  castオペコードと1対1
  boolvalはスタック入れて、ファンクション
  処理遅くなり、オペコードが多くなる
  ただし、コールバックとして渡せる
 →できる限りcastを使いましょう

・zend_executeの実体化
 実行処理をオーバーライドするとき知識要る
 →5.5前と違う

 5.5前:実体化
  zend_executeに好きな関数入れて、実行

 5.5以降:実体化
  execute_ex
  zend_execute_ex
  executeはなくなった
  zend_execute→使い方が違う

 zend_execute()
   ↓
 (*zend_execute_ex)() = execute_ex();

 execute系取り扱い注意

・おわりに
 PHPコアに興味を持って!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHP5.6、5.7と7.0、新しい実行環境HHVMについて聞いてきた!

2014-10-12 08:35:37 | PHP
きのう(10/11)、PHP Conference 2014に行ってきて、聞いて聞いた内容をメモメモ

まずはオープニング。表題の件は「PHPの今とこれから2014」に出てくる




■はじめに
・テーマ:知りたい、があなたを変えていく
・はじめてのひと・・・結構いる
・過去最高の34の協賛企業
 4階:スポンサー・スタンプラリー
・ハッシュタグ#phpcon2014
・注意事項(お願い事)本日満員
 参加募集:800人
 参加登録:1300人
 前からつめて座って
・はじまるよ




■PHPの今とこれから2014
・15回皆勤
・PHPとは
 Webアプリスクリプトがん後
 W3Techs.com調べ:PHP 8割
 WordPressなども
 5割が5.3
 75%が5.3→end of life
 互換性の話
 5.3→6.0(unicode)はうまくいかずキャンセル
 最新5.6(今年8月)
 5.7と7.0
・リリースプロセス
  ライフサイクル3年(2年バグフィックスのこり1年セキュリティ)
  5.4はセキュリティ
  5.3はEOL
  緊急リリースはOpenSSLがらみ→比較的安定
・5.6カイゼン・変更ポイント
  速度:若干5%くらい
  メモリ削減
  シンタックスシュガー的
  デバッガ標準搭載
  互換性:
   キャラクターセット(UTF8デフォルト)
   文字コード統一化
   中間者攻撃に対して
・5.6 地道なカイゼン
  構文 ... 可変長引数
  アンパッキング
  phpdbg xdebuggerのほうが使いやすい?
  7に向けての標準化
・その他の機能
  use

・新しいPHP
 HHVM、Hack実行環境
 HHVM:Facebookが作っている実行環境
   JITベースVM
   倍速以上でWordPress動く
 Hack:PHP拡張言語
  型チェッカ
  gradual typing
  非同期プログラム
 PHP互換環境の課題
   hhvm,HippyVM,Recki-CT,Zephir
 PHP言語使用を策定:言語実装依存の問題を分離

・PHP5.7
 PHP7.0開発に2年を要する見込み
 2015年8リリース?(リリース自体も未定)

・PHP Next Generation
 2014年5月 phpng発表
 性能的にはhhvmに追いついてきた(WPで15%まけくらい)
 エクステンションはいじる
 2014年7月名称はPHP7

・PHP7に向けて
 エンジン/メモリ管理大幅改善
 ASTベースコンパイラ
 OpCaheエンジン
 非同期プログラミング
 64bit対応
 Unicodeサポート
 →hhvmの2年遅れ?

・PHPの未来
 Hack/HHVMリリースの持つ意味
 高性能かつ現実的な解を継続的に提供する

・日本PHPユーザー会
 メーリングリスト
 勉強会
 PHPユーザー会メンバーと思ったら会員

・PHPカンファレンス2014の見どころ
 Cトラック:入門向け
 セキュリティ
 CMS

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

EclipseのPHPで実行できない場合

2014-10-06 19:13:35 | PHP
Eclipseで、PHPのプロジェクトを作って、ファイルを作成し、
さあ、実行と思って実行すると・・・

となっていて、実行できない。

じゃあ、Eclipseをダウンロードしてきたときに中に入っている
xamppを動かせばいいんだな!と思って、
xampp/apache/bin/httpd.exe
を実行すると、すぐに終わってしまう(実行できない)

・・・ということで、PHPファイルが実行して確認できない件について




■原因

eclipseを落としてきただけでは、xamppは、ルートディレクトリ直下
(CドライブならC:\直下)に置かれるものとして設定されているみたい・・

この設定を修正するコマンドを実行しないといけないみたい・・・




■方法

初めてでも安心!Eclipseのインストール方法【PHPアプリケーション開発環境構築編】
http://techacademy.jp/magazine/1620

に書かれている「(2)Eclipseインストール」を参照。
具体的には、以下のとおり

●xamppの設定
eclipseをダウンロードしてきたら、xamppの設定をする。


「xampp」フォルダ内にある「setup_xampp.bat」

を実行。

●httpd起動
終了したら、xampp-control.exeを起動

アメリカ国旗を選んで
apacheをスタート

(すでに他のところで起動していると、動かない。MySQLもすでに起動していると、動かない)


●PHPプロジェクト作成
今回、上記サイトとは違う方法で行っている。
eclipseにもどり、
ファイル→新規→プロジェクト→その他で

PHP→PHPプロジェクトを選び、

新規プロジェクトの作成で、

内容を、「既存ロケーションにプロジェクトを作成」のほうにして、
ディレクトリーを、xamppのhtdocの下に、あらたにプロジェクト名でフォルダを作成し、そこに指定する
※注意:「参照」ボタンをクリックし、出てきたダイアログで、「新しいフォルダーを作成」して、
そのフォルダーを指定した場合、「ディレクトリー」に名前が反映されないことがある
(フォルダー名が「新しいフォルダ」で終わることがある)その場合は、正しいフォルダー名に直すこと

下にワーニングが出るが、無視して完了させる。

●PHPファイルを作成し、実行

こんなかんじになる。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PHPカンファレンス2014が10/11にあるけど

2014-09-29 11:58:05 | PHP
くわしくは、こちら

http://phpcon.php.gr.jp/w/2014/



申し込みサイトにいけない?
たぶん、申し込みサイトは、ここなの?

http://phpcon.doorkeeper.jp/events/15532


最近は、Angular.js入門とか、直接PHPでないものも
ありなのですね!

大垣さん×徳丸さんってあるけど、何やるんだろう?
(セキュリティ??、PHPerの人は、わかるんですね、きっと・・?)



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする