SlideShare uma empresa Scribd logo
1 de 32
App Engine
と
いまどきのPHP
2016.06.19
1
- Zend Expressive + SendGrid でメール送信 -
プロローグ: GAE/PHPは大盛況
Google Cloud Platform Blog (Tuesday, June 16, 2015)
App Engine for PHP is generally available. Build scalable apps, faster.
http://pocket.co/sM8VRe
Tens of thousands of developers already have built and deployed PHP applications on App Engine, with
over 800M PHP queries handled each week. To put that in perspective, if we printed each PHP
generated web page viewed on App Engine each day on a single sheet of paper and stacked them in a
tower, it would be over seven miles high (about the same as the cruising altitude of a 747 jumbo jet).
何万もの開発者がApp Engine上でPHPアプリケーションを構築および展開し、App Engineが扱う各週の
PHPのクエリは約8億件に達する。App EngineでPHPが生成しているWebページを紙にして積み上げると、
7マイル(約11,200m)を超える高さになる。
(ボーイング747の巡航高度くらいや)
2
プロローグ: GAE/PHPは大盛況??
■ http://qiita.com/ に聞いてみる
■ tag:gae or tag:googleappengine
■ tag:php tag:gae or tag:php tag:googleappengine
■ tag:ruby tag:gae or tag:ruby tag:googleappengine
■ tag:Node.js tag:gae or tag:Node.js tag:googleappengine
3
自己紹介1
■ https://twitter.com/s0kam0 : そかも
■ フリーランスプログラマー
(DB関連の方が好き)
■ 仕事では、Zend Framework(初代) を利用中
■ スペシャルティ珈琲豆販売情報API「tilde.coffee」開発中
http://developer.tilde.coffee/
4
自己紹介2
■ http://tilde.coffee (GAE/Python and Go)
■ PHPもやってみようかと。
■ やるなら、いまどきのPHP (ただし、PHP5.5)
■ メール送信を試してみる(SendGrid)
5
いまどきのPHP
PHP-FIG(Framework Interop Group)
■ 著名なPHPフレームワーク&CMSの
開発プロジェクトメンバーたちが
PHPでの開発効率を高めるナレッジを共有するために発足したグループ
■ PHP Standard Recommendations(PSR)
提言と標準化した情報を公開している。
-> いまどきのPHP開発トレンド
■ http://www.php-fig.org/
6
いまどきのPHP
PSR-7 : HTTP Message Interface
7
出典: http://stackphp.com/
いまどきのPHP
PSR-7 : HTTP Message Interface
8
■ GETパラメータ取得
interface ServerRequestInterface extends RequestInterface
{
/**
* Retrieve query string arguments.
---- (略) ----
* @return array
*/
public function getQueryParams();
}
いまどきのPHP
PSR-7 : HTTP Message Interface
9
■ POSTパラメータ取得
interface ServerRequestInterface extends RequestInterface
{
/**
* Retrieve any parameters provided in the request body.
---- (略) ----
* @return null|array|object The deserialized body parameters, if any.
* These will typically be an array or object.
*/
public function getParsedBody();
}
いまどきのPHP
PSR-7 : HTTP Message Interface
10
■ レスポンスステータス
interface ResponseInterface extends MessageInterface
{
/**
* Return an instance with the specified status code and, optionally, reason phrase.
---- (略) ----
*/
public function withStatus($code, $reasonPhrase = '');
}
いまどきのPHP
PSR-7 : HTTP Message Interface
■ 共通Interfaceの実装なので、フレームワークの移行、バー
ジョンアップが容易
■ PSR-7採用フレームワーク
Zend-Expressive, Laravel, Slim, etc...
11
いまどきのPHP
Middleware
12
Middleware
(Session)
Middleware
(Authentication)
Middleware
Middleware
(Log)
Request Response
いまどきのPHP
Middleware
■ 処理粒度を細かくできるので、テストしやすい
■ 疎結合なので、再利用可能
http://stackphp.com/middlewares/
13
GAEとの相性
■ インフラはおまかせ
■ Composeで
Middlewareを集めて
積み上げるだけ
(だけ?)
14
採用したPHPフレームワーク
Zend Expressive
■ PSR-7 準拠の PHP Micro Framework
■ PHPコアエンジン「Zend Engine」の開発者が創業した
ゼンド・テクノロジーズ社が後援する
オープンソースプロジェクト
15
採用したPHPフレームワーク
Zend Expressive
■ ひな型プロジェクトで始められる
https://github.com/zendframework/zend-expressive-skeleton
■ GAEの制約があるので、そのままでは動作しない
http://qiita.com/curious-eyes/items/fbc11e709f2121cc215e
16
GAEの制約回避
■ file_put_contents()
設定ファイルをキャッシュ保持するために利用
■ GAEではファイル書込ができないので
Memcacheを利用するよう変更
17
$mc = new Memcache();
// setする場合
$mc->set($key, $value);
// getする場合
$config = $mc->get($key);
GAEの制約回避 (php.ini)
■ timezoneの変更(Asia/Tokyo)
■ Warning対策
PHP Warning: php_sapi_name() has been disabled for security reasons.
18
date.timezone = Asia/Tokyo
google_app_engine.enable_functions = "php_sapi_name, gc_enabled”
利用ライブラリ
Google Cloud Datastore
■ Google Cloud Datastore Library for PHP
https://github.com/tomwalder/php-gds
■ App Engine SDK のプロトコルバッファを利用しているので
ローカルPCの開発環境実行時でも、問題無く動作
■ GAE/PHP から利用であれば、サービス アカウント キーの設定不要
19
利用ライブラリ
SendGrid
■ App Engine公式ドキュメントで紹介しているライブラリは古い
(... 古くていいかも ...)
■ sendgrid-webapi-v3-php
https://github.com/idimensionz/sendgrid-webapi-v3-php
■ 小さな不具合があるので...
https://github.com/curious-eyes/sendgrid-webapi-v3-
php/tree/patchUpdateProfile
20
利用ライブラリ
Google Cloud SQL
■ MySQLに接続する感覚で、PDO設定を行えば良い
■ Zend_DB で configファイルを定義するだけ
■ 今回は使ってない
21
ライブラリのインストール
■ composer でサクサクと
22
"require": {
... (略) ...
"idimensionz/sendgrid-webapi-v3": "dev-patchUpdateProfile",
"tomwalder/php-gds": "v2.1.0",
"zendframework/zend-db": "^2.8",
"zendframework/zend-inputfilter": "^2.7",
"zendframework/zend-form": "^2.9"
},
composer.json 抜粋
SendGrid設定1
■ config/autoload/sendgrid.local.php
23
'sendgrid' => [
'api_key' => 'SG.M2ae3...(略)...P6Pu7VlD2Yf28',
'mail_param' => [
'from' => 'info@tilde.coffee',
'subject'=> '[Tilde.Coffee]お問い合わせありがとうございます',
'text' => '',
],
],
SendGrid設定2
■ config/autoload/sendgrid.global.php
24
'dependencies' => [
'factories' => [
AppMailSendGrid::class =>
AppMailSendGridFactory::class,
],
],
SendGrid API実行処理1
■ src/APP/Mail/SendGrid.php
25
class SendGrid extends SendGridApiEndpointAbstract {
public function __construct(
SendGridRequest $sendGridRequest,
$mail_param
) {
parent::__construct($sendGridRequest, self::ENDPOINT);
$this->mail_param = $mail_param;
}
// 次ページへ続く
SendGrid API実行処理2
■ src/APP/Mail/SendGrid.php
26
// 前ページの続き
public function sendByTemplate($mailto, $body)
{
$this->mail_param['to'] = $mailto;
$this->mail_param['text'] = $body;
return $this->post('', $this->mail_param);
}
}
送信API実行
SendGrid API実行処理Factory
■ src/APP/Mail/SendGridFactory.php
27
class SendGridFactory{
public function __invoke(ContainerInterface $container) {
$config = $container->get('config');
$authenticationOptionSetter = new AuthenticationOptionSetter();
$authentication = new AuthenticationApiKey(
$authenticationOptionSetter, $config['sendgrid']['api_key']
);
$sendgridRequest = new SendGridRequest(
$authentication, self::SENDGRID_API_HOST);
return new SendGrid($sendgridRequest,
$config['sendgrid']['mail_param']);
認証設定
実行処理
インスタンス生成
SendGrid注意点
■ HTMLメールがデフォルト
プレーンテキストで送りたい場合
[Settings] -> [Mail Settings] -> [Plain Content] を ON
28
SendGrid注意点
■ 本文のリンクがトラッキングURLに変換されてしまう。
プレーンテキストの場合は、リンクをそのまま出力したい
[Settings] -> [Tracking] -> [Click Tracking]
29
SendGrid注意点
■ 1回のAPIリクエストで宛先数は最大10,000まで指定可能
■ 1秒あたり3,000リクエストを超えないことを推奨
30
参考文献
■ PSR-7 : http://www.php-fig.org/psr/psr-7/
■ PSR-7 By Example :
https://mwop.net/blog/2015-01-26-psr-7-by-example.html
■ Master Zend Framework :
http://www.masterzendframework.com/zend-expressive-introduction/
■ PHP The Right Way : http://www.phptherightway.com/
31
まとめ
■ GAE/PHP には誰も興味が無い
■ いまどきのPHP: PSR-7 & Middleware
■ GAE/PHP は、PSR-7 & Middleware で
32

Mais conteúdo relacionado

Mais procurados

PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件についてPHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について健治郎 安井
 
Phpでアプリケーションサーバー
PhpでアプリケーションサーバーPhpでアプリケーションサーバー
Phpでアプリケーションサーバーk-motoyan
 
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介Naoto Mawatari
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ OSC2013 Nagoya10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ OSC2013 Nagoyakenjis
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションHideo Kashioka
 
たのしい独自フレームワーク
たのしい独自フレームワークたのしい独自フレームワーク
たのしい独自フレームワークKenta USAMI
 
フレームワーク入門書の決定版が完成
フレームワーク入門書の決定版が完成フレームワーク入門書の決定版が完成
フレームワーク入門書の決定版が完成kenjis
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjHisateru Tanaka
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1kenjis
 
Cake Php開発事例
Cake Php開発事例Cake Php開発事例
Cake Php開発事例柴田 篤志
 
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。sasezaki
 
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Takahiro Kubo
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007Rui Hirokawa
 
WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来Jun-ichi Sakamoto
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るYoshio Hanawa
 
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識Fumito Mizuno
 
Livlisのcakephp事例
Livlisのcakephp事例Livlisのcakephp事例
Livlisのcakephp事例Masahiro Saito
 

Mais procurados (20)

PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件についてPHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について
 
Fuelphp1.8を始めたい
Fuelphp1.8を始めたいFuelphp1.8を始めたい
Fuelphp1.8を始めたい
 
Phpでアプリケーションサーバー
PhpでアプリケーションサーバーPhpでアプリケーションサーバー
Phpでアプリケーションサーバー
 
最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介最近、僕がハマったFuelPHPの紹介
最近、僕がハマったFuelPHPの紹介
 
Osc2014
Osc2014Osc2014
Osc2014
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ OSC2013 Nagoya10分でわかるFuelPHP @ OSC2013 Nagoya
10分でわかるFuelPHP @ OSC2013 Nagoya
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
たのしい独自フレームワーク
たのしい独自フレームワークたのしい独自フレームワーク
たのしい独自フレームワーク
 
フレームワーク入門書の決定版が完成
フレームワーク入門書の決定版が完成フレームワーク入門書の決定版が完成
フレームワーク入門書の決定版が完成
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 
Cake Php開発事例
Cake Php開発事例Cake Php開発事例
Cake Php開発事例
 
Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。Phpstudy44 Zend Frameworkが抱えている問題は多い。
Phpstudy44 Zend Frameworkが抱えている問題は多い。
 
Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発Pythonで始めるWebアプリケーション開発
Pythonで始めるWebアプリケーション開発
 
PHPの今とこれから2007
PHPの今とこれから2007PHPの今とこれから2007
PHPの今とこれから2007
 
WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来WebAssemblyが切り拓くフロントエンドWeb開発の未来
WebAssemblyが切り拓くフロントエンドWeb開発の未来
 
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探るZend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
 
安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識安全なテーマ作成のためのPHPの知識
安全なテーマ作成のためのPHPの知識
 
Livlisのcakephp事例
Livlisのcakephp事例Livlisのcakephp事例
Livlisのcakephp事例
 

Destaque

CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?Kumano Ryo
 
OAuth2基礎知識
OAuth2基礎知識OAuth2基礎知識
OAuth2基礎知識sokamo1975
 
Redmineを使ったヘルプデスクシステムでサポート業務を効率化
Redmineを使ったヘルプデスクシステムでサポート業務を効率化Redmineを使ったヘルプデスクシステムでサポート業務を効率化
Redmineを使ったヘルプデスクシステムでサポート業務を効率化Go Maeda
 
Lightningコンポーネント事始め
Lightningコンポーネント事始めLightningコンポーネント事始め
Lightningコンポーネント事始めMitsuru Ogawa
 
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNSAWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNSAmazon Web Services Japan
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAmazon Web Services Japan
 
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみたSQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみたKumano Ryo
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 

Destaque (8)

CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?CloudSQL v2は デキる子なのか?
CloudSQL v2は デキる子なのか?
 
OAuth2基礎知識
OAuth2基礎知識OAuth2基礎知識
OAuth2基礎知識
 
Redmineを使ったヘルプデスクシステムでサポート業務を効率化
Redmineを使ったヘルプデスクシステムでサポート業務を効率化Redmineを使ったヘルプデスクシステムでサポート業務を効率化
Redmineを使ったヘルプデスクシステムでサポート業務を効率化
 
Lightningコンポーネント事始め
Lightningコンポーネント事始めLightningコンポーネント事始め
Lightningコンポーネント事始め
 
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNSAWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
 
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみたSQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 

Semelhante a App Engine と いまどきのPHP

スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法Rui Hirokawa
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Frameworkryota ichie
 
『RIA開発におけるサービス開発のイロハ』
 『RIA開発におけるサービス開発のイロハ』 『RIA開発におけるサービス開発のイロハ』
『RIA開発におけるサービス開発のイロハ』Jun Funakura
 
RIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハRIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハJun Funakura
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -Masaki Takeda
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1hideaki honda
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020Rui Hirokawa
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るshinjiigarashi
 
12 総合演習Word Pressの利用
12 総合演習Word Pressの利用12 総合演習Word Pressの利用
12 総合演習Word Pressの利用文樹 高橋
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Monaca
 
OpenShift v3 Technical Overview
OpenShift v3 Technical OverviewOpenShift v3 Technical Overview
OpenShift v3 Technical OverviewNakayama Kenjiro
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説Akira Inoue
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解Monaca
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionRui Hirokawa
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform拓将 平林
 

Semelhante a App Engine と いまどきのPHP (20)

スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
 
『RIA開発におけるサービス開発のイロハ』
 『RIA開発におけるサービス開発のイロハ』 『RIA開発におけるサービス開発のイロハ』
『RIA開発におけるサービス開発のイロハ』
 
RIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハRIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハ
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
 
densan2014-late01
densan2014-late01densan2014-late01
densan2014-late01
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
Introduction to web development 1
Introduction to web development 1Introduction to web development 1
Introduction to web development 1
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 
12 総合演習Word Pressの利用
12 総合演習Word Pressの利用12 総合演習Word Pressの利用
12 総合演習Word Pressの利用
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)Phone gap+javascriptスマホアプリ開発(入門編)
Phone gap+javascriptスマホアプリ開発(入門編)
 
OpenShift v3 Technical Overview
OpenShift v3 Technical OverviewOpenShift v3 Technical Overview
OpenShift v3 Technical Overview
 
Ad stirの裏側
Ad stirの裏側Ad stirの裏側
Ad stirの裏側
 
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
 
HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解HTML5 クロスプラットフォームアプリ開発の現実解
HTML5 クロスプラットフォームアプリ開発の現実解
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special Edition
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 

App Engine と いまどきのPHP