Submit Search
Upload
PHP基礎勉強会
•
22 likes
•
9,234 views
Yuji Otani
Follow
社内で行ったPHP基礎勉強会の資料です。深い内容までは踏み込んでいませんが、幅広い内容を取り上げています。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 113
Recommended
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Akio Ishida
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
PHPの今とこれから2016
PHPの今とこれから2016
Rui Hirokawa
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
phpspecで学ぶLondon School TDD
phpspecで学ぶLondon School TDD
Akio Ishida
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
Recommended
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
Akio Ishida
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
OPcacheの新機能ファイルベースキャッシュの内部実装を読んでみた
Yoshio Hanawa
PHPの今とこれから2016
PHPの今とこれから2016
Rui Hirokawa
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
Hiroshi Tokumaru
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
phpspecで学ぶLondon School TDD
phpspecで学ぶLondon School TDD
Akio Ishida
RFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa
PHPの今とこれから2017
PHPの今とこれから2017
Rui Hirokawa
最近の PHP の話
最近の PHP の話
y-uti
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
shinjiigarashi
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
Hideo Kashioka
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
php-src の歩き方
php-src の歩き方
do_aki
ウェブアプリのセキュリティをちゃんと知ろう (毎週のハンズオン勉強会の資料)
ウェブアプリのセキュリティをちゃんと知ろう (毎週のハンズオン勉強会の資料)
ひとし あまの
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
System2 for h
System2 for h
Jun Chiba
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
do_aki
WCO2012「PHP教室」
WCO2012「PHP教室」
Takuma Morikawa
What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6
Takashi Uemura
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Tomohito Adachi
QAサイトをつくってみよう
QAサイトをつくってみよう
Sawada Makoto
Webプログラミング入門
Webプログラミング入門
Tsuyoshi Kiryu
More Related Content
What's hot
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa
PHPの今とこれから2017
PHPの今とこれから2017
Rui Hirokawa
最近の PHP の話
最近の PHP の話
y-uti
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
shinjiigarashi
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
Hideo Kashioka
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
php-src の歩き方
php-src の歩き方
do_aki
ウェブアプリのセキュリティをちゃんと知ろう (毎週のハンズオン勉強会の資料)
ウェブアプリのセキュリティをちゃんと知ろう (毎週のハンズオン勉強会の資料)
ひとし あまの
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
System2 for h
System2 for h
Jun Chiba
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
ひとし あまの
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
do_aki
WCO2012「PHP教室」
WCO2012「PHP教室」
Takuma Morikawa
What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6
Takashi Uemura
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Tomohito Adachi
What's hot
(20)
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHPの今とこれから2019
PHPの今とこれから2019
PHPの今とこれから 2013
PHPの今とこれから 2013
PHPの今とこれから2017
PHPの今とこれから2017
最近の PHP の話
最近の PHP の話
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
PHP AST 徹底解説
PHP AST 徹底解説
php-src の歩き方
php-src の歩き方
ウェブアプリのセキュリティをちゃんと知ろう (毎週のハンズオン勉強会の資料)
ウェブアプリのセキュリティをちゃんと知ろう (毎週のハンズオン勉強会の資料)
PHPの今とこれから2021
PHPの今とこれから2021
Zend OPcacheの速さの秘密を探る
Zend OPcacheの速さの秘密を探る
System2 for h
System2 for h
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
WCO2012「PHP教室」
WCO2012「PHP教室」
What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Viewers also liked
QAサイトをつくってみよう
QAサイトをつくってみよう
Sawada Makoto
Webプログラミング入門
Webプログラミング入門
Tsuyoshi Kiryu
デバイス WebAPIによるスマートフォン周辺デバイスの活用
デバイス WebAPIによるスマートフォン周辺デバイスの活用
Device WebAPI Consortium
Web programming introduction
Web programming introduction
colun
Webシステムプログラミング20150413
Webシステムプログラミング20150413
義広 河野
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
Hiroyuki Sugimoto
Webの仕組みとプログラミング言語
Webの仕組みとプログラミング言語
Yossy Taka
第4回 PHPのおさらい
第4回 PHPのおさらい
Sawada Makoto
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Yusuke Ando
Viewers also liked
(9)
QAサイトをつくってみよう
QAサイトをつくってみよう
Webプログラミング入門
Webプログラミング入門
デバイス WebAPIによるスマートフォン周辺デバイスの活用
デバイス WebAPIによるスマートフォン周辺デバイスの活用
Web programming introduction
Web programming introduction
Webシステムプログラミング20150413
Webシステムプログラミング20150413
PHP初心者に贈る、まちがえないPHPの始め方・学び方
PHP初心者に贈る、まちがえないPHPの始め方・学び方
Webの仕組みとプログラミング言語
Webの仕組みとプログラミング言語
第4回 PHPのおさらい
第4回 PHPのおさらい
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
Similar to PHP基礎勉強会
Php5.4
Php5.4
ke-m kamekoopa
WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門
Michinari Odajima
知って得する標準関数の使い方
知って得する標準関数の使い方
Soudai Sone
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
kenjis
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
Takako Miyagawa
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
Insight Technology, Inc.
Osc2014
Osc2014
Soudai Sone
Ruby on Rails 入門
Ruby on Rails 入門
Yasuko Ohba
実はとても面白い...Documentation library
実はとても面白い...Documentation library
Kouta Shiobara
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
使い捨て python コードの書き方
使い捨て python コードの書き方
Sho Shimauchi
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Ikuko Kanada
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Fumito Mizuno
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
Kenji Shirane
04 filesystem include
04 filesystem include
文樹 高橋
Web技術勉強会 20100925
Web技術勉強会 20100925
龍一 田中
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」
Soudai Sone
ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前
Yusuke Kamo
Similar to PHP基礎勉強会
(20)
Php5.4
Php5.4
WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門
知って得する標準関数の使い方
知って得する標準関数の使い方
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
CodeIgniter東京勉強会 2011.05.14
CodeIgniter東京勉強会 2011.05.14
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
[db tech showcase Tokyo 2014] B26: PostgreSQLを拡張してみよう by SRA OSS, Inc. 日本支社 高塚遥
Osc2014
Osc2014
Ruby on Rails 入門
Ruby on Rails 入門
実はとても面白い...Documentation library
実はとても面白い...Documentation library
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
使い捨て python コードの書き方
使い捨て python コードの書き方
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Mizuno buddypress-plugin
Drupal のコア要素を知る ~構築を支える道具立て~
Drupal のコア要素を知る ~構築を支える道具立て~
04 filesystem include
04 filesystem include
Web技術勉強会 20100925
Web技術勉強会 20100925
今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」
ここからはじめるAction Script 3.0 入門前
ここからはじめるAction Script 3.0 入門前
More from Yuji Otani
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Yuji Otani
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
Yuji Otani
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
Yuji Otani
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
Yuji Otani
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
Yuji Otani
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
Yuji Otani
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
Yuji Otani
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
Yuji Otani
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
Yuji Otani
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
Yuji Otani
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Yuji Otani
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
Yuji Otani
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
Yuji Otani
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Yuji Otani
Phalcon勉強会資料
Phalcon勉強会資料
Yuji Otani
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Yuji Otani
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
Yuji Otani
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
Yuji Otani
Nginx勉強会
Nginx勉強会
Yuji Otani
More from Yuji Otani
(20)
SKYDISCのIoTを支えるテクノロジー
SKYDISCのIoTを支えるテクノロジー
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
Redisの特徴と活用方法について
Redisの特徴と活用方法について
「技術のインテリジェンスを創る」をどうやって実現するか
「技術のインテリジェンスを創る」をどうやって実現するか
Why choose Hack/HHVM over PHP7
Why choose Hack/HHVM over PHP7
PHP7ではなくHack/HHVMを選ぶ理由
PHP7ではなくHack/HHVMを選ぶ理由
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
MariaDB+GaleraClusterの運用事例(MySQL勉強会2016-01-28)
PHP7がリリースされたいま、 改めてHackについて考える。
PHP7がリリースされたいま、 改めてHackについて考える。
FuelPHP × HHVM サービス開発事例
FuelPHP × HHVM サービス開発事例
Hack言語に賭けたチームの話
Hack言語に賭けたチームの話
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
Phalcon勉強会資料
Phalcon勉強会資料
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
RDBとNoSQLの上手な付き合い方(勉強会@LIG 2013/11/11)
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
【基礎編】社内向けMySQL勉強会
【基礎編】社内向けMySQL勉強会
Nginx勉強会
Nginx勉強会
Recently uploaded
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Atomu Hidaka
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
Shota Ito
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
osamut
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
furutsuka
Recently uploaded
(9)
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
PHP基礎勉強会
1.
PHP勉強会
〜基礎編〜 株式会社シーエー・アドバンス 大谷 祐司
2.
はじめに 今回の勉強会は、シーエー・アドバンスで採 用している開発言語「PHP」について、基礎 的な内容を中心に幅広い内容でお届けします。 普段何気なく使用しているPHPについて、知 識を整理する機会にできればと思います。
3.
アジェンダ ○PHPの歴史 ○基本的な構文/概念 ○拡張モジュールについて ○フレームワーク ○パフォーマンスチューニング ○その他まめ知識
4.
PHPの歴史
5.
PHPの歴史 突然ですが質問です。 「PHP」とは何の略でしょうか?
6.
PHPの歴史 答え:Hypertext Preprocessor (ハイパーテキストプリプロセッサー)
7.
PHPの歴史 Hypertext Preprocessor ⇒全然P・H・Pじゃない。。
8.
PHPの歴史 元々PHPは「Personal Home Page」 (パーソナルホームページ)の略でしたが、 1998年にリリースされたPHP3から意味が変 更されました。
9.
1995年:バージョン1.0 最初のバージョンは、カナダ人のラスマス・ ラードフによってリリースされました。 ソースコードを全て公開し、誰もが改良やバ グ修正をできるようにしています。
10.
1996年:バージョン2.0 SQLによるDBMSツールが統合されました。 この頃のPHPは世界で数千の熱狂的なユーザ を持ち、インターネットコンテンツの1%程 度のシェアを持っていました。
11.
1998年:PHP3.0 Zendの創業者2名によって、コード全てが書 き直されました。PHP2.0系の開発は完全に 停止され、新しいPHPとしてリリースされ ています。 ユーザも増加し、世界のインターネットコ ンテンツの10%程度のシェアになりまし た。
12.
2000年:PHP4.0 ZendEngineが組み込まれ、大幅な機能拡張 やパフォーマンスアップが実現されていま す。 人気言語として関連プロジェクトの開発も盛 んになり、インターネットの20%程度のシェ アを獲得しました。
13.
2004年:PHP5.0 ZendEngineが2.0となり、より強力なプロ グラム言語になっています。 オブジェクト指向がより一層強化され、ク ラスライブラリのSPLがサポートされるよ うになっています。
14.
2012年:PHP5.4 5.3から実装された名前空間、クロージャ、 GC等に加え、traitやビルトインサーバな ど、多くの機能が追加されています。 既にPHP5.5の仕様が公開されるなど、とて も開発が活発なプログラム言語です。
15.
PHPのサポート 現在サポートされているのはPHP5.3以降の バージョンのみで、それ以前のバージョンは 対象外となっています。 サポート対象外のバージョンはセキュリティ パッチ等が配布されていないので注意が必要 です。
16.
基本的な構文/概念
17.
処理の開始 メインとなるPHPがキックされ、その処理を 起点にしてプログラムの実行が開始されます。 Javaのようにオブジェクト指向で全てを完結 させるのではなく、手続き型の処理を起点と しています。
18.
関数型とオブジェクト型 PHPは関数型とオブジェクト型、両方の記述 方法を使用する事ができます。 PHP4までは関数型が中心でしたが、PHP5 以降はオブジェクト型の機能追加が活発です。 フレームワークもオブジェクト型に移行する ものが多くなっています。
19.
function functionは下記の3つが基本になっています。 「引数」「処理」「戻り値」
20.
function 質問: どうしてfunctionが必要なのでしょうか?
21.
function 答え: ・処理を1カ所に切り出し分かりやすくす る。 ・単体テストを効率化する。 ・同じ種類の処理を纏め、ソースの可読性を 上げる。 etc
22.
function 質問: 戻り値を返さずにfunctionを抜ける方法は?
23.
function 答え: Exceptionを投げる。
24.
Exceptionとは 例外発生時に投げられるクラス。 tryブロックで囲んだ部分の例外は、catchで 捉えて例外処理を行う事が出来る。 拡張することで、独自の例外クラスを作成す ることも可能。
25.
文字列の「”」と「’」 PHPの文字列は、「”」と「’」のどちらでも 記述することが可能です。 この2つの違いは何でしょうか?
26.
文字列の「”」と「’」 「”」⇒文字列中の変数を解析します。 例) $name = 'red'; echo
"frame is $name"; 結果: frame is red
27.
文字列の「”」と「’」 「’」⇒文字列中の変数を解析しません。 例) $name = 'red'; echo
‘frame is $name’; 結果: frame is $name
28.
ヒアドキュメント マークで囲まれた部分を文字列とします。 例) $str0 = <<<
DOC_END XXXXXXXXXXXXX DOC_END; ※赤文字の部分がマーク。
29.
define defineを使用して定数を定義します。 例) define(‘MY_DEFINE’, ‘AAAAA’); それでは、同じ定数を2回定義するとどうな るでしょうか?
30.
define 答え: 2回目のdefineは無視される。 defineは、同じキーで1回のみ定義が可能で す。関数 defined($name)を使用して、その 定数が定義済みかを確認できます。
31.
配列について PHPの配列は、連想配列が基本です。 例) $sample_array = array(); $sample_array*+
= “a”; $sample_array*+ = “b”; 配列の中身 ⇒array(0 =>“a”, 1=>”b”);
32.
配列について 配列は、設定した順に値を持ちます。 例) $sample_array = array(); $sample_array*2+
= “a”; $sample_array*0+ = “b”; 配列の中身 ⇒array(2 =>“a”, 0=>”b”);
33.
配列について 「整数」または「文字列」をキーに持つこと ができます。 例) $sample_array = array(); $sample_array*“1”+
= “a”; $sample_array*“2”+ = “b”; 配列の中身 ⇒array(“1”=>“a”,“2”=>”b”);
34.
オブジェクトについて オブジェクトには、任意の値を設定できます。 メンバ変数として定義されたものはもちろん、 未定義の変数も渡すことができます。 アクセスが「public」になるので要注意です。 例) $sample_obj = new
SampleObject(); $sample_obj->no_varieble = “1”; ※クラスに未定義でも指定できます。
35.
const constは、クラス内に定数を定義できます。 例) Class AAA {
const MY_CONST =‘const_value’; }
36.
外部ソースの読み込み 外部のソースを読み込む方法がいくつか存在 します。それぞれの違いを考えてみましょ う。 ・require ・require_once ・include ・autoload(spl_autoload_register)
37.
外部ソースの読み込み ・require 同じファイルを複数回読み込み ⇒何度も読み込まれる。 読み込みに失敗した場合 ⇒致命的なエラーが発生。 http://php.net/manual/ja/function.require.php
38.
外部ソースの読み込み ・require_once 同じファイルを複数回読み込み ⇒2回目以降は無視される。 読み込みに失敗した場合 ⇒致命的なエラーが発生。 http://php.net/manual/ja/function.require-once.php
39.
外部ソースの読み込み ・include 同じファイルを複数回読み込み ⇒何度も読み込まれる。 読み込みに失敗した場合 ⇒警告が出るが、処理は中断されず。 http://php.net/manual/ja/function.include.php
40.
外部ソースの読み込み ・autoload(spl_autoload_register) 未定義のクラスを、呼び出したタイミングで 自動的に呼び出せるようにします。 クラスごとにrequire_once関数を呼び出す必 要がなくなるので、コードがシンプルになり ます。
41.
外部ソースの読み込み ・autoload(spl_autoload_register) また、スクリプト内で使用するかどうか分か らないクラスをインクルードしなくても済む ので処理上のオーバーヘッドが軽減します。 http://php.net/manual/ja/function.spl- autoload-register.php
42.
SPL SPL(Standard PHP Library)を使用すると、 言語機能の拡張やデザインパターンの実装が 可能になります。SPLはクラスにインタ フェースとして実装します。 本日はよく使われるものを紹介します。 http://php.net/manual/ja/book.spl.php
43.
SPL Countable:オブジェクトにcount()が使用できる ようにします。 例) $obj = new
$obj; $count = count($obj); http://php.tonnikala.org/manual/ja/class.countable.php
44.
SPL ArrayAccess:オブジェクトを配列のように扱う 事ができます。 例) $obj = new
$obj; $obj*$key+ = “testval”; $str = $obj[$key]; http://php.net/manual/ja/class.arrayaccess.php
45.
SPL Serializable:独自のシリアライズを実装すること ができます。 例) $obj = new
$obj; $ser = serialize($obj); $newopj = serialize(ser); http://php.net/manual/ja/class.serializable.php
46.
SPL その他にも、多くのSPLライブラリが存在し ます。知っておくと便利なものも多いので、 是非見てみてください。 http://php.net/manual/ja/book.spl.php
47.
ガベージコレクション PHPの変数やオブジェクトは、 ・参照されなくなる ・unsetされる これらの操作で破棄されます。 破棄されたオブジェクトは、ガベージコレク ション実行のタイミングでメモリから削除さ れます。
48.
ガベージコレクション ガベージコレクションを有効にするには、コ ンパイル時に「enable_gc=1」を指定しま す。 phpinfo()では、「zend.enable_gc」で確認す ることができます。この設定が無効だと、メ モリ使用量が大きく増加します。
49.
ガベージコレクション gc_collect_cycles()を実行すると、強制的に ガベージコレクションを行う事ができます。 PHP5.3以上で使用する事ができます。
50.
MySQLコネクション MySQLのライブラリが複数存在しま す。 ・php_mysql ・php_mysqli ・php_pdo ・PEAR:DB それぞれについて見ていきましょう。
51.
php_mysql PHP2.0から実装されているライブラリです。 既に開発は停止されており、保守対応のみと なっています。 オブジェクト指向での実装はできず、PHP5.5 からは非推奨ライブラリになりました。 新規の開発では使用しない方が良いでしょう。
52.
php_mysqli PHP5.0以降で使用可能なライブラリです。関 数とオブジェクト指向の両方で呼び出しが可 能です。 php_mysqlの機能を拡張しており、プリペア ドステートメントの利用や複数クエリの一括 実行等が可能になっています。
53.
php_pdo PHPの拡張モジュールとして動作するドライ バです。単独でデータベース抽象化レイヤー の機能を有しており、同一のコードで複数の DBに対応させる事ができます。 オブジェクト指向に特化して実装されており、 例外処理を扱う事ができます。SQLの結果を クラスで取得する事もできます。
54.
PEAR:DB PHPで記述されたライブラリで、PDOなどと 同様にデータベースに依存しない形でプログ ラムの記述が出来ます。 しかし拡張ライブラリとして実装されている PDOの方が高速に動作するため、特別な理由 が無ければ選択しない方が良いでしょう。
55.
メモリ使用量 PHPから関数を実行してメモリの使用量を確 認する事ができます。 memory_get_usage(); ⇒現在のメモリ使用量を返します。 memory_peak_get_usage(); ⇒実行中プログラムにおける、最大時のメモ リ使用量を返します。
56.
変数コンテナ PHPの変数はzvalと呼ばれるコンテナに格納 されています。参照数のカウンタを保持して おり、参照数が0になるとガベージコレク ションの対象になります。 debug_zval_dump($data); ⇒$dataが参照されている数を確認する事が できます。がベージコレクションの対象かを 確認する事ができます。
57.
比較演算子 PHPの特徴的な比較演算子を紹介します。 「===」 ⇒型まで見て比較を行います。 「strcasecmp()」 ⇒大文字小文字を区別しない文字列比較。 「strcmp()」 ⇒大文字小文字を区別する文字列比較。
58.
配列演算子 「$a + $b」 ⇒$aと$bを結合する。 「
$a == $b」 ⇒$a と $b のキー/値のペアが等しい場合にtrue。 「 $a === $b」 ⇒$a と$b のキー/値のペアが等しく、その並び順 が等しく、 かつデータ型も等しい場合に true。
59.
文字コード 文字化けを防ぐため、PHPで使用する文 字コードは以下の記述を全て統一します。 ・php.iniのmbstring.internal_encoding ・php.iniのdefault_charset ・DBコネクションの文字コード (set names
XX) ・ソースコードの文字コード
60.
phpinfo() phpinfo()を使用すると、PHPの情報を確認す ることができます。 ・PHPのバージョン。 ・設定ファイル「php.ini」の場所。 ・拡張ライブラリのフォルダ。 ・有効な拡張ライブラリ。 etc
61.
文字列で関数名を指定する 関数名を文字列として変数に代 入して、()で呼び出すことができ ます。 <?php
function myfunc() { echo "call myfuncn"; } $f = "myfunc"; $f(); ?>
62.
文字列でクラス名を指定する クラス名を変数で指定することで。ク ラスをインスタンス化することができ ます。 <?php
class TestClass { echo "call myfunc"; } $classname = “TestClass”; $testClass = new $classname(); ?>
63.
PHPのオブジェクト指向 質問: オブジェクト指向はどのような言語ですか? 特徴を挙げてください。
64.
オブジェクト指向とは オブジェクト同士の相互作用としてシステ ムの振る舞いをとらえる考え方です。 関連するデータの集合と、それに対する手 続きを「オブジェクト」と呼ばれる一つの まとまりとして管理し、その組み合わせに よってソフトウェアを構築します。
65.
オブジェクト指向とは 存在するオブジェクトについては、利用に 際してその内部構造や動作原理の詳細を知 る必要はなく、外部からメッセージを送れ ば機能します。 大規模なソフトウェア開発において有効な 考え方であるとされています。
66.
覚えておきたいクラスの用語 コンストラクタ デストラクタ 継承 実装
67.
覚えておきたいクラスの機能 メンバ変数 アクセッサ Static関数 Form インスタンス化 オブジェクトの破棄
68.
拡張モジュール
69.
標準の拡張モジュール 質問: PHP標準の拡張モジュールを思い つく限り上げてください。
70.
標準の拡張モジュール pdo, mysql, openssl,
curl, mysqli, gzip etc… PHPは標準で様々な拡張モジュールを使用 する事ができます。
71.
PEAR 標準のモジュール以外にも、便利な機能を簡 単に使用できる「PEAR」という拡張モ ジュールが存在します。
72.
PEAR PHP Extension and
Application Repositoryの 略です。コミュニティーによって運営され るプロジェクトで、1999年に創設されまし た。 12月現在で37カテゴリ/590もの拡張ライ ブラリを利用する事ができます。
73.
PEAR ミッション ・再利用可能なコンポーネントを提供するこ と ・PHP の発展に寄与すること ・よい開発手法を PHP
開発者たちに広める こと
74.
PEAR コーディングにあたり、PEAR 標準コーディ ング規約 (PEAR
Coding Standards: PCS)が 定められています。 これにより、複数の開発者における共同開発 が容易になり、品質が安定しています。 http://pear.php.net/manual/ja/standards.php
75.
PEAR PEAR パッケージはすべて pear.php.netに登 録され、そこからダウンロードすることがで きます。 開発機からPEARインストール用コマンドを 実行すると、容易にライブラリの追加を行う 事が可能です。
76.
PEAR 代表的なPEARのライブラリ DB(DBアクセス) Mail(メールの送信) FTP(FTPの操作) Net(ソケット通信やTelnet)
77.
PECL peclコマンドでインストール可能な、Cで 書かれた拡張ライブラリ。コンパイルされ ているコードを実行するので、実行速度が 速いのが特徴です。 2012年12月現在で34カテゴリ/296の拡張 パッケージを利用する事ができます。
78.
PECL 代表的なPECLのライブラリ imagick(画像関連の操作) json(JSON関連の操作) memcached(memcachedに対する操作) oauth(Oauth認証に関する操作)
79.
その他のライブラリ PHPには組織やコミュニティベースでライブ ラリが配布されているものも多く存在します。 これらはサイトからモジュールをダウンロー ドし、読み込むことで使用可能になります。
80.
その他のライブラリ 代表的なライブラリ JpGraph(グラフを生成する) PHPExcel, pChart(Excel関連の操作) FPDF/TCPDF(PDF関連の操作) phpThumb/class.image(画像関連の操作)
81.
おまけ:Cの拡張ライブラリ開発方法 Cの拡張ライブラリは誰でも開発する事が 可能です。 PHPで書くよりも高速で動作するために、 よりパフォーアンスが求められる拡張機能 に活用される事が多いです。
82.
フレームワーク
83.
フレームワークとは フレームワークとは、アプリケーションの 開発時に必要となる汎用的な機能を纏めて 提供し、アプリケーションの土台として機 能するソフトウェアです。
84.
フレームワークとは 質問: フレームワーク導入のメリット/デメリッ トを上げてみてください。
85.
フレームワーク導入のメリット ・汎用的機能の開発工数が抑えられる。 ・開発経験を持つメンバーを集めやすい。 ・テスト済みで、運用実績のあるシステムを すぐに作る事ができる。 ・MVCなど、デザインパターンに従った開 発を行う事ができる。 ・書籍などから情報を集めやすい。
86.
フレームワーク導入のデメリット ・採用したものが流行によって廃れてしま う場合がある。 ・フレームワークがPHPのバージョンアッ プについていけない場合がある。 ・必要な機能が無い場合、フレームワーク 本体に手を加えなければいけない事もある。
87.
フレームワークについて 現行のPHPフレームワークは、ほとんどが MVCモデルに基づいています。 Model:処理の中核を担う。 View:画面の表示・出力を担う。 Contoroller:ViewとModelを制御する。 http://e-words.jp/w/MVC.html
88.
フレームワークについて 今回は、PHPの代表的なフレームワークを いくつか紹介します。
89.
CakePHP 最新バージョン:2.2 PHPバージョン:5.2以上 開発元:Cakeソフトウェア財団 URL:http://cakephp.jp/
90.
CakePHP 特徴 ・小・中規模開発向け ・日本ではもっとも人気がある ・「設定より規約」の思想のもと、多くの ルールがある。自由度は高くない。
91.
Symphony 最新バージョン:2.1 PHPバージョン:5.3以上 開発元:Sensio社 URL:http://symfony.com/
92.
Symphony 特徴 ・大規模重厚 ・多機能な分、インストールや習得に多くの 時間がかかる。 ・シンプル・高速 ・対象ドメイン独立な本体の設計
93.
CodeIgniter 最新バージョン:2.1 PHPバージョン:5.1以上 開発元:EllisLab URL:http://ellislab.com/codeigniter
94.
CodeIgniter 特徴 ・軽量高速 ・小規模開発向け ・ライセンス問題で話題になっている
95.
FuelPHP 最新バージョン:1.3 PHPバージョン:5.3以上 開発元:コミュニティ(100名以上の開発 者) URL:http://www.fuelphp.com/
96.
FuelPHP 特徴 ・2011年にリリース ・軽量高速 ・小規模開発向け ・PHP5.3の機能をフル活用 ・MongoDB/Redisをサポート
97.
ZendFramework 最新バージョン:2.0 PHPバージョン:5.3以上 開発元:Zend社(PHP開発元) URL:http://framework.zend.com/
98.
Lemonade 最新バージョン:0.4 PHPバージョン:5.1以上 開発元:? URL:http://lemonade-php-script- creator.en.softonic.com/
99.
Lemonade 特徴 ・軽量なマイクロフレームワーク ・Rubyのsinatraに影響を受けている ・導入も非常に簡単で、学習コストも低い
100.
Ethna 最新バージョン:2.5 PHPバージョン:5.0以上 開発元:GREE 採用実績:GREE
101.
Ethna 特徴 ・ライトウェイトなMVCフレームワーク。 ・似たようなコードを書かなくてよいこと が目標。 ・国産フレームワーク
102.
フレームワーク利用にあたって 今後も様々なフレームワークが出てくると 思いますが、目的が何かをきちんと見極め た上で選択する事が必要だと思います。 またフレームワークの内部処理を理解し、 処理を任せきりにしない事が大切です。
103.
PHPのパフォーマンスUP (今回は2つだけ紹介します)
104.
ループの条件はループの前で書く ループの条件をfor文の中で行うと、都度の ループ回数評価が発生します、必ずfor文の 前で行うようにしましょう。
105.
ループの条件はループの前で書く 良い例) $roop_count = count($target_array); for
($i = 0; $i < $roop_count; $i++) { // for文中の処理 } 悪い例) for ($i = 0; $i < count($target_array); $i++) { // for文中の処理 }
106.
中間コンパイラを導入する アクセラレータは初回実行時に、コンパイル済
のバイトコードをメモリ上にキャッシュしま す。これによって高速な実行を実現します。 PHP実行イメージ 初回実行時に メモリにキャッシュ コンパイ 解析 ル PHPソースコード バイトコード 実行
107.
中間コンパイラを導入する ・eAccelerator http://eaccelerator.net/ ・APC http://php.net/manual/ja/book.apc.php
108.
おまけ:PHP認定資格
109.
PHP資格 PHP技術者認定試験という、PHPのスキルを 認定する資格が存在します。 「認定者の雇用機会」や「認定者が所属する 会社のビジネスチャンス」の拡大を図ること を目的として、2011年に開始されました。 http://www.phpexam.jp/
110.
PHP資格 初級:PHPプログラミングの基本知識を問 う試験 受験料:12,600円 合格率:68%
111.
PHP資格 上級:言語仕様から実用的なプログラミン グテクニックまでの知識を問う試験 受験料:15,750円 合格率:10%
112.
PHP資格 ウィザード:PHPの発展に貢献できる知識と 発想力を持つこと 受験料:無料 合格率:0%
113.
勉強会は以上になります。 ご清聴ありがとうございました。