<?PHP
テーマ２
PHPまるわかり︕コーディングから実⾏環境まで〜 ビギナーからプロフェッショナルまで全ての開発者にフィットするPHPの秘密 〜

スクエアー free セミナー 第４８回
How to get Mother tongue.
コネクト株式会社

<?PHP アジェンダ
 コネクト株式会社の紹介
 PHPの現状と未来
 PHP開発スタイル
 OSSの活用
 PHPフレームワークの活用 PHPスクラッチ開発

 PHP実⾏環境

<?PHP

コネクト株式会社のご紹介

<?PHP 会社概要
会社情報
社名 コネクト株式会社(英語表記︓konekto Inc.)
設⽴⽇ 2004年8月27日

主な取引先(順不同、敬称略)
株式会社大塚商会
株式会社ネットワ－ルド
株式会社iGUAZU
ターボリナックス株式会社
ターボシステムズ株式会社

資本⾦ 9,500万円

伊藤忠テクノソリューションズ株式会社

代表取締役 佐藤栄一

全日空システムズ株式会社

本店所在地〒111-0051
東京都台東区蔵前3-6-7
蔵前イセキビル4F
TEL:03-5809-1853 FAX:03-3865-8220企業間だけではなく、人と企業および人と人のつながりを大切にするITを目指し、つながりを表す「コネクト」(konekto︓エスペラント語) を社名いたしました。

株式会社クレアンスメアード
富士ゼロックスシステムサービス株式会社
株式会社サードウェア株式会社
PCIアイオス株式会社
株式会社ティージー情報ネットワーク
オリックス株式会社株式会社NTTぷらら
さくら情報システム株式会社

4<?PHP コネクトのあゆみ Zendプロダクトの日本総代理店として、日本語化およびサポートを提供。
 PHPによるWebシステム開発およびサポートを提供。
 PHPと組み合わされることの多いオープンソースデータベースMySQLのリセールパートナー。


2001年9月 株式会社テンアートニ （現：サイオステクノロジー株式会社）の1部門としてスタート

2002年12月 ゼンド・オープンソースシステムズ株式会社として独立



2003年9月 MySQLプロダクトの取扱い開始/サポートサービス開始

2004年9月 ゼンド･ジャパン株式会社に社名変更

2005年３月 Apache/Tomcatサポートサービス開始

2006年5月 ターボリナックス傘下となる



2006年9月 IBM i(当時System i)対応プロダクトをリリース



2007年3月 Zend Core 2.0リリース(Windows環境を大幅に改善)

2010年9月 Zend Server リリース

2012年7月 コネクト株式会社に社名変更

2012年11月 Cassandraサポートサービス提供開始



2013年8月 dynaTraceの取扱い開始

5

<?PHP 主要3事業
Webシステムソリューションご提供
データベース MySQL

Webシステム PHP
世界で最も使用されているWeb用スクリプト言語

世界で最も使用されているOSS
データベースkonekto
OSSサポートサービス
コンサルティング

Apache 、Apache Tomcat、Apache Cassandra は、Apache Software Foundationの登録商標です。その他の商標は、各社の登録商標です。

6

<?PHP Zend 製品 ファミリー
Zend Studio PHP専用統合開発環境
PHPの統合開発環境です。エディタからデバッガまで、PHPの開発に必要な機能を集約しました。

Zend Guard PHPセキュリティソリューション

ソースのコード化による不可視化、高速化を実現します。ライセンス制限を掛ける機能も提供します。

Zend Server PHPアプリケーションサーバ

障害監視、パフォーマンス向上などを行います。強力な運用サポー
ト機能を提供します。
さらに、ジョブキュー、セッションクラスタリング、JavaブリッジなどのPHPサーバを大幅に強化/拡張する機能を提供しています。

無償でできないことをリーズナブルなコストで実現
7

<?PHP

PHPの現状と未来

<?PHP スクリプト言語シェア
server-side programming languages forwebsites
ColfFusion
0.8%

Perl
0.5%

Ruby
0.5%

Java
2.6%

Python0.1%

Java Script
0.1%

PHP
ASP.NET

ASP.NET
16.6%

Java
ColfFusion
Perl
Ruby
PythonPHP
78.9%

Java Script

出展︓W3Techs http://w3techs.com/

9

<?PHP PHPバージョン分布
PHP 5.5
3.7%

PHP 5.6
0.1%

PHP 5.１
1.3%

PHP 5.2
23.3%

PHP 5.4
23.1%

PHP 5.3
48.4%出展︓W3Techs http://w3techs.com/

10

<?PHP PHPライフサイクル
PHPバージョン

GAEOL

ライフサイクル

4.4

2005年7月

2008年8月

3年

5.0

2004年7月

2005年9月

1年5.1

2005年11月

2006年8月

1年

5.2

2006年11月

2011年1月

4年

5.3

2009年6月

2014年8月

5年

5.4

2012年3月

2015年3月

3年5.5

2013年6月

2016年3⽉︖

3年

5.6

2014年8月

2017年8⽉︖

3年

5.7

2015年8⽉︖

3年72016年︖

3年

11<?PHP PHPは⻭ブラシである
 PHPは⻭ブラシくらい興奮に値する。
 シンプルで、毎⽇使う便利な道具。

だからどうした。
⻭ブラシについて書物を漁るやつがいるか︖
Rasmus Lerdorf氏

12

<?PHP 次世代PHP HHVM Facebookが開発公開する

PHP環境
 C++トランスレータ(2010/2)
 JITベースVM(2011/12)

 Hack PHPNG(テストベット) メモリ管理みなおし 変数管理みなおし PHP７
 JITサポート HHVM用のPHP互換言語

 ASTベースコンパイラ 関数、クラスの型アノテー OpCacheエンジン統合ション

 * Facebookの98%が移⾏済

 非同期プログラミング 64bit対応
 Unicodeサポート

 HHVM + Hack == PHP++ HTTP2など

13

<?PHP

PHP開発スタイル

<?PHP PHPの利⽤ポイント
スクラッチ
開発

フレームワーク活用

OSS
活用

15

<?PHP 開発効率の追求(極限)パッケージソフト(半完成品)
フレームワークOSS活用
PHPフレームワーク利⽤

テンプレートエンジン

隠蔽化/抽象化

スクラッチ開発

プログラム言語Copyright 2014 konekto, Inc

16

<?PHPOSSの活用オープンソースアプリを活用する

<?PHP CMSの活用
 WordPress http://ja.wordpress.org/

18

<?PHP CMSの活用
 Drupal http://drupal.jp/

19

<?PHP ECの活用 EC-Cube http://www.ec-cube.net/

20

<?PHP ECの活用
 Magento http://www.magento-jp.com/

21

<?PHP CRMの活用
 SugarCRM
 http://www.sugaruser.jp/

22

<?PHP

フレームワークの利⽤
Webアプリ開発の近道

<?PHP アプリケーションの共通機能
 汎⽤的な処理の共通化
 ページ遷移とロジック
 MVCによる役割の明確化
 デザインとロジックの分離 ⼊⼒処理(サニタイズ)
 データベース処理
 隠蔽化

 認証処理/アクセス制御

24

<?PHP PHPフレームワークのシェア

25

<?PHP

単機能
↑↓
高機能

代表的な
PHPフレームワークの比較

小規模

←→

LaravelCodeIgniter
FuelPHP

Yii
CakePHP大規模Zend Framework 2
Symfony

26

<?PHP 話題性︓Google トレンド
日本国内限定WWでの集計27

<?PHP

スクラッチ開発
ビギナーからエキスパートまで豊富なコーディングスタイル

<?PHP

PHPによるプログラム
HTMLとの混在

1. <HTML>
2. <BODY>
3. <?php4.

for ($i = 1; $i <= 10; $i++)

5.

{

6.

print "Hello PHP <BR>";

7.

}

8. ?>
9. </BODY>
10. </HTML>29

<?PHP

PHPによるプログラム
関数の作成

1. <?php2.

function foo($arg_1, $arg_2, /* ..., */ $arg_n)

3.

{

4.

echo "関数の例¥n";5.

return $retval;

6.

}

7. ?>

30

<?PHP
1.

class Cart

2.

{PHPによるプログラム
オブジェクト指向プログラム

3.

var $todays_date;4.

var $name;5.

var $owner;6.

var $items = array("VCR", "TV");

7.

function Cart()

8.

{

9.

$this->todays_date = date("Y-m-d");10.

$this->name = $GLOBALS['firstname'];11.

/* 等など. . . */

12.

}

13.

}

14.

?>

1.
2.
3.
4.
5.
6.

<?php
$cart = new Cart;$cart->add_item("10", 1);$another_cart = new Cart;$another_cart->add_item("0815", 3);?>31

<?PHP PHPコーディングスタイル
 テキストエディタ
 メモ帳、Vi 高機能エディタ
 秀丸、Notepad++ 統合開発環境
 PhpStorm

有償 Netbeans

無償 phpDesigner

有償(シェアウエア)

 Aptana Studio

有償/無償

 Zend Studio

有料(評価版あり)/無償(Eclipse+PHP IDE)

32

<?PHP Zend Studio 10 日本語版
 プロジェクト規模の開発体制にフォーカス33

<?PHP

PHP実⾏環境<?PHP PHP実⾏環境構築のポイント
パッケージ
一括導入

独自インストール

アプリケーションサーバ
Zend Server

<?PHP パッケージ一括導入
 Linuxデストリビューションには
 Webサーバ
 データベース
 PHP

 必ず収録されています。

36

<?PHP Cloud/レンタルサーバ
 Cloudにも必ずPHPが提供されています。
 当たり前のように利⽤できます。
 先進的なCloudベンダーは、PHPから環境管理を⾏うAPIを提供しています。
 レンタルサーバでも PHPは、ほぼ間違えなく使用できます。
 一部のレンタルサーバは古い(信じられないくらい)バージョンを標準としています。要注意です。

37

<?PHP PHPを独自インストール
 PHPと縁遠い環境では独⾃にインストールを⾏います。
 LinuxなどのUNIX系の場合には、ソースコードをダウンロードしてコンパイルする必要があります。
 Windowsの場合には、コンパイル済バイナリを入手してダインロードすることをお勧めします。

38

<?PHP 手元のWindows PCに環境構築 パッケージ導入をお勧めします。
 XAMPP Apache,PHP,MySQL 有名OSS(Drupal、Joomla!、WordPress 、Magento、SugarCRMなどの)のインストールも可能です Zend Server Apache,PHP,MySQL
 大規模PHPフレームワーク(Symphony、Zend Framework 1/2)のインストールも可能です 有名OSS(Drupal、Joomla!、WordPress 、Magentoなどの)のインストールも可能です39

<?PHP Zend Server が提供する実⾏環境
 ⾼信頼性と⾼速性を両⽴したPHP環境の提供– Webアプリ単位の監視機能を提供– 稼動後の運⽤管理の容易さ– 開発効率の向上– モバイル環境への対応
MySQL/Oracle

サーバ管理GUI
Zend Framework 1 & 2
データベースドライバ
拡張モジュール
PHP実⾏環境
Apache(IHS)

デプロイ機能高速化
デバッグ
JVMとの連携
モニタリングジョブキュー
コードトレーシング

40

<?PHP PHP実⾏環境︓Zend Server 7.0

Copyright 2014 konekto, Inc

41

<?PHP Z-Rayとは
 PHP実行状況を手軽に解析するためのZend Server 7 新機能

 旧来のコードトレースをWebブラウザに実装しました ブラウザに新たなプラグインを必要とせずにPHPアプリケーションの実行状況を詳細に解析できます シンプルで手軽に解析を始められます Chrome(デベロッパツール)やFireFox(FireBug)と何が違うのか PHPの実行内容が解ります データベースの処理が見られます42

<?PHP Z-Ray ツールバー

43

<?PHP Z-Ray ツールバーの機能

ステータス

レスポンスタイム/容量モニター(アラート)
エラー
データベース処理

呼び出し関数
環境変数
Zend Studio 連携
Zend Server 設定変更
Z Ray ツールバー Off44

<?PHP ステータス

45

<?PHP レスポンスタイム/容量46

<?PHP モニター(アラート)

47

<?PHP エラー

48

<?PHP データベース処理

49

<?PHP 呼び出し関数

50

<?PHP 環境変数

51

<?PHP Zend Server 7 対応システム
 サポートOSLinux x86 and x86-64
RHEL, CentOS and OEL - versions 6.x and 5.x through RPM packages



SLES 11 and OpenSUSE 12.x through RPM packageDebian GNU/Linux 6.0 and 7.x

Ubuntu Linux 12.04/14.04 (LTS) and latest via DEB packages.

Windows x86 and x86-64
Windows 7

Windows 8

Windows Server 2008 R2



Windows Server 2012

IBM i


V6R1 V7R1 V7R2 with latest PTFs

 サポートPHP


5.5～5.452