SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 1
PHP
1 3,000 Web
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 2

•

• ( )

1.
2.
3.
4. PHP
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 3
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 4

•
•

•
•

•
•
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 5


関数
関数
関数 データ
関数
データ
データ
関数
クラスA クラスB
関数
関数
データ データ
データ 関数
関数
関数
DB処理 メール処理
役
割
分
担
が
明
確
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 6

• 1960 Simula

•
•


• ( )

•

objectA objectB
objectC
objectD
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 7

• class
 PHP class
• (class) (function)
 class
–
 (class)
•
•
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 8
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 9


• $this
• public

<?php
class Person // 人を表すクラス
{
public $name = ''; // 名前を記憶するプロパティ
public function sayHello() // あいさつするメソッド
{
echo 'こんにちは、' . $this->name . 'です。';
}
}
Person.php
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 10


•
 new
– $object = new ();
•
 $object-> = 'foo'
 echo $object->
•
 $object-> ()
<?php
require_once('Person.php');
$taro = new Person(); // newでオブジェクトを作成します
$taro->name = 'アシアル太郎'; // name属性の値を変更します
$taro->sayHello(); // 「こんにちは、アシアル太郎です。」と出力されます
index.php
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 11

•

•


URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 12

• public private protected 3
 public
• $taro = new Person();
• $taro->name = ' '; // public OK
 private
• $taro = new Person();
• $taro->name = ' '; // private
 $taro->setName(' '); // public OK
 protected
• private
•
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 13
private
 Person.php

• $name private
• $name setName()
<?php
class Person
{
private $name = '';
public function setName($name)
{
$this->name = trim($name);
}
public function sayHello()
{
echo 'こんにちは、' . $this->name . 'です。';
}
}
Person.php
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 14
 index.php
<?php
require_once('Person.php');
$taro = new Person();
$taro->setName('アシアル太郎');
$taro->sayHello();
index.php
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 15

•

•


URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 16

• private
• private
 private
•
 public
•
 private
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 17

•
• __construct
 construct
•

• __destruct()
•
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 18
 Person.php
<?php
class Person // アクセス修飾子の例
{
private $name = '';
public function __construct($name)
{
$this->setName($name);
}
public function __destruct()
{
echo 'さようなら';
}
public function setName($name)
{
$this->name = trim($name);
}
public function sayHello() { // あいさつするメソッド (publicなのでどこからでも呼べる)
echo 'こんにちは、' . $this->name . 'です。';
}
}
Person.php
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 19
 index.php
<?php
require_once('Person.php');
$taro = new Person('アシアル太郎');
$hanako = new Person('アシアル花子');
$taro->sayHello();
$hanako->sayHello();
index.php
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 20


• User
• Item
• Mail

• : read -> CsvFileReader
• : control -> OrderController
• : manage -> ConnectionManager
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 21

• save()
• getParameter($name)
• findByUserName($userName)
 boolean (true/false) is has
• isAvailable()
• isDisabled()
• hasParameter($name)

• Item isAvailable()
• Database connect()
• User isLoggedIn()
URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 22
SimpleXML
 SimpleXML
• XML
• RSS
• http://php.net/manual/ja/book.simplexml.php
 RSS
• dump
<?php
$rss = simplexml_load_file('http://blog.asial.co.jp/rss/rss2.0.php');
// var_dump($rss);
// var_dump(get_class_methods($rss));
foreach ($rss->channel->item as $item) {
echo htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8')."<br>¥n";
// var_dump($item->guid->attributes());
}

Mais conteúdo relacionado

Mais procurados

3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012Yusuke Ando
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたMoriyoshi Koizumi
 
SlowQueryとの戦い
SlowQueryとの戦いSlowQueryとの戦い
SlowQueryとの戦いKen Gotoh
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
Symfony2 How to create your Bundle
Symfony2 How to create your BundleSymfony2 How to create your Bundle
Symfony2 How to create your Bundlechobi e
 
Ruby 同好会宣言
Ruby 同好会宣言Ruby 同好会宣言
Ruby 同好会宣言Yuya Takeyama
 
Web技術勉強会 20100925
Web技術勉強会 20100925Web技術勉強会 20100925
Web技術勉強会 20100925龍一 田中
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programmingrisou
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話infinite_loop
 
WordPress のキャッシュ機構
WordPress のキャッシュ機構WordPress のキャッシュ機構
WordPress のキャッシュ機構katanyan
 
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料Zend Db Table拡張説明資料
Zend Db Table拡張説明資料co-hey japan
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門kwatch
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向azuma satoshi
 
Gen-Template-for-Perl
Gen-Template-for-PerlGen-Template-for-Perl
Gen-Template-for-Perlnasneg
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかHisashi Aruji
 

Mais procurados (19)

3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
 
SlowQueryとの戦い
SlowQueryとの戦いSlowQueryとの戦い
SlowQueryとの戦い
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
Symfony2 How to create your Bundle
Symfony2 How to create your BundleSymfony2 How to create your Bundle
Symfony2 How to create your Bundle
 
Ruby 同好会宣言
Ruby 同好会宣言Ruby 同好会宣言
Ruby 同好会宣言
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
 
Web技術勉強会 20100925
Web技術勉強会 20100925Web技術勉強会 20100925
Web技術勉強会 20100925
 
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料
 
Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話
 
Django boodoo
Django boodooDjango boodoo
Django boodoo
 
WordPress のキャッシュ機構
WordPress のキャッシュ機構WordPress のキャッシュ機構
WordPress のキャッシュ機構
 
Zend Db Table拡張説明資料
Zend Db Table拡張説明資料Zend Db Table拡張説明資料
Zend Db Table拡張説明資料
 
PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門PHP5.5新機能「ジェネレータ」初心者入門
PHP5.5新機能「ジェネレータ」初心者入門
 
大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向大ざっぱにオブジェクト指向
大ざっぱにオブジェクト指向
 
Gen-Template-for-Perl
Gen-Template-for-PerlGen-Template-for-Perl
Gen-Template-for-Perl
 
J qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているかJ qmobiはjqueryから軽量化しているか
J qmobiはjqueryから軽量化しているか
 

Semelhante a 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミングAtsuhiro Kubo
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 
沖縄Web+db勉強会 20121026
沖縄Web+db勉強会 20121026沖縄Web+db勉強会 20121026
沖縄Web+db勉強会 20121026Shusaku Fukumine
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリMasaki Oshikawa
 
HTML5プロフェッショナル認定試験対策講座
HTML5プロフェッショナル認定試験対策講座HTML5プロフェッショナル認定試験対策講座
HTML5プロフェッショナル認定試験対策講座アシアル株式会社
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractTakeshi Ogawa
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter IntegrationKazuki Nakajima
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会Yuji Otani
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_QueryHidekazu Ishikawa
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリアシアル株式会社
 
Integral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common LispIntegral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common Lispfukamachi
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
Geolocation gurunavi
Geolocation gurunaviGeolocation gurunavi
Geolocation gurunaviJun Chiba
 
JavaScript ライブラリーを使い倒そう #buildinsider
JavaScript ライブラリーを使い倒そう #buildinsiderJavaScript ライブラリーを使い倒そう #buildinsider
JavaScript ライブラリーを使い倒そう #buildinsiderTsuyoshi Yasunishi
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門Mahito Ogura
 

Semelhante a 【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト (20)

Using Dancer
Using DancerUsing Dancer
Using Dancer
 
Silex入門
Silex入門Silex入門
Silex入門
 
意図を表現するプログラミング
意図を表現するプログラミング意図を表現するプログラミング
意図を表現するプログラミング
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 
沖縄Web+db勉強会 20121026
沖縄Web+db勉強会 20121026沖縄Web+db勉強会 20121026
沖縄Web+db勉強会 20121026
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
 
HTML5プロフェッショナル認定試験対策講座
HTML5プロフェッショナル認定試験対策講座HTML5プロフェッショナル認定試験対策講座
HTML5プロフェッショナル認定試験対策講座
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
 
Haikara
HaikaraHaikara
Haikara
 
Php5 4勉強会
Php5 4勉強会Php5 4勉強会
Php5 4勉強会
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
 
WordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリWordPress APIで作るモバイルアプリ
WordPress APIで作るモバイルアプリ
 
Integral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common LispIntegral - New O/R Mapper for Common Lisp
Integral - New O/R Mapper for Common Lisp
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
Geolocation gurunavi
Geolocation gurunaviGeolocation gurunavi
Geolocation gurunavi
 
AWS小ネタ集
AWS小ネタ集AWS小ネタ集
AWS小ネタ集
 
JavaScript ライブラリーを使い倒そう #buildinsider
JavaScript ライブラリーを使い倒そう #buildinsiderJavaScript ライブラリーを使い倒そう #buildinsider
JavaScript ライブラリーを使い倒そう #buildinsider
 
ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門ChefユーザのためのAnsible入門
ChefユーザのためのAnsible入門
 

Mais de Yuki Okamoto

忙しい人はSimplicityテーマに丸投げ
忙しい人はSimplicityテーマに丸投げ忙しい人はSimplicityテーマに丸投げ
忙しい人はSimplicityテーマに丸投げYuki Okamoto
 
JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介Yuki Okamoto
 
サラリーマンだけど コワーキングスペースの運営に 関わってみた
サラリーマンだけどコワーキングスペースの運営に関わってみたサラリーマンだけどコワーキングスペースの運営に関わってみた
サラリーマンだけど コワーキングスペースの運営に 関わってみたYuki Okamoto
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作Yuki Okamoto
 
CoEdoワイン会の紹介
CoEdoワイン会の紹介CoEdoワイン会の紹介
CoEdoワイン会の紹介Yuki Okamoto
 
Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語Yuki Okamoto
 
Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語Yuki Okamoto
 
AdvancedBookmarkConcept
AdvancedBookmarkConceptAdvancedBookmarkConcept
AdvancedBookmarkConceptYuki Okamoto
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0Yuki Okamoto
 
5分で分かるmonaca pressproject(草案)
5分で分かるmonaca pressproject(草案)5分で分かるmonaca pressproject(草案)
5分で分かるmonaca pressproject(草案)Yuki Okamoto
 
Community_Board on WordPress With mobile application
Community_Board on WordPress With mobile applicationCommunity_Board on WordPress With mobile application
Community_Board on WordPress With mobile applicationYuki Okamoto
 
初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓Yuki Okamoto
 
PHPカンファレンス2012 LT 一億総PHPer計画
PHPカンファレンス2012 LT 一億総PHPer計画PHPカンファレンス2012 LT 一億総PHPer計画
PHPカンファレンス2012 LT 一億総PHPer計画Yuki Okamoto
 

Mais de Yuki Okamoto (14)

忙しい人はSimplicityテーマに丸投げ
忙しい人はSimplicityテーマに丸投げ忙しい人はSimplicityテーマに丸投げ
忙しい人はSimplicityテーマに丸投げ
 
JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介JavaScript祭りLTでmonacaを紹介
JavaScript祭りLTでmonacaを紹介
 
サラリーマンだけど コワーキングスペースの運営に 関わってみた
サラリーマンだけどコワーキングスペースの運営に関わってみたサラリーマンだけどコワーキングスペースの運営に関わってみた
サラリーマンだけど コワーキングスペースの運営に 関わってみた
 
WordPressAPI
WordPressAPIWordPressAPI
WordPressAPI
 
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
【アシアル塾】Linux超入門編・第一回はじめてのターミナル(黒い画面)操作
 
CoEdoワイン会の紹介
CoEdoワイン会の紹介CoEdoワイン会の紹介
CoEdoワイン会の紹介
 
Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語
 
Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語Advanced bookmarkpresentedbymonacapressproject日本語
Advanced bookmarkpresentedbymonacapressproject日本語
 
AdvancedBookmarkConcept
AdvancedBookmarkConceptAdvancedBookmarkConcept
AdvancedBookmarkConcept
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
 
5分で分かるmonaca pressproject(草案)
5分で分かるmonaca pressproject(草案)5分で分かるmonaca pressproject(草案)
5分で分かるmonaca pressproject(草案)
 
Community_Board on WordPress With mobile application
Community_Board on WordPress With mobile applicationCommunity_Board on WordPress With mobile application
Community_Board on WordPress With mobile application
 
初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓初めてのプラグイン開発で学んだ教訓
初めてのプラグイン開発で学んだ教訓
 
PHPカンファレンス2012 LT 一億総PHPer計画
PHPカンファレンス2012 LT 一億総PHPer計画PHPカンファレンス2012 LT 一億総PHPer計画
PHPカンファレンス2012 LT 一億総PHPer計画
 

【アシアル塾】PHPオブジェクト指向再入門・第一回クラスとオブジェクト

  • 1. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 1 PHP 1 3,000 Web
  • 2. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 2  •  • ( )  1. 2. 3. 4. PHP
  • 3. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 3
  • 4. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 4  • •  • •  • •
  • 5. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 5   関数 関数 関数 データ 関数 データ データ 関数 クラスA クラスB 関数 関数 データ データ データ 関数 関数 関数 DB処理 メール処理 役 割 分 担 が 明 確
  • 6. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 6  • 1960 Simula  • •   • ( )  •  objectA objectB objectC objectD
  • 7. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 7  • class  PHP class • (class) (function)  class –  (class) • •
  • 8. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 8
  • 9. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 9   • $this • public  <?php class Person // 人を表すクラス { public $name = ''; // 名前を記憶するプロパティ public function sayHello() // あいさつするメソッド { echo 'こんにちは、' . $this->name . 'です。'; } } Person.php
  • 10. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 10   •  new – $object = new (); •  $object-> = 'foo'  echo $object-> •  $object-> () <?php require_once('Person.php'); $taro = new Person(); // newでオブジェクトを作成します $taro->name = 'アシアル太郎'; // name属性の値を変更します $taro->sayHello(); // 「こんにちは、アシアル太郎です。」と出力されます index.php
  • 11. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 11  •  •  
  • 12. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 12  • public private protected 3  public • $taro = new Person(); • $taro->name = ' '; // public OK  private • $taro = new Person(); • $taro->name = ' '; // private  $taro->setName(' '); // public OK  protected • private •
  • 13. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 13 private  Person.php  • $name private • $name setName() <?php class Person { private $name = ''; public function setName($name) { $this->name = trim($name); } public function sayHello() { echo 'こんにちは、' . $this->name . 'です。'; } } Person.php
  • 14. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 14  index.php <?php require_once('Person.php'); $taro = new Person(); $taro->setName('アシアル太郎'); $taro->sayHello(); index.php
  • 15. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 15  •  •  
  • 16. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 16  • private • private  private •  public •  private
  • 17. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 17  • • __construct  construct •  • __destruct() •
  • 18. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 18  Person.php <?php class Person // アクセス修飾子の例 { private $name = ''; public function __construct($name) { $this->setName($name); } public function __destruct() { echo 'さようなら'; } public function setName($name) { $this->name = trim($name); } public function sayHello() { // あいさつするメソッド (publicなのでどこからでも呼べる) echo 'こんにちは、' . $this->name . 'です。'; } } Person.php
  • 19. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 19  index.php <?php require_once('Person.php'); $taro = new Person('アシアル太郎'); $hanako = new Person('アシアル花子'); $taro->sayHello(); $hanako->sayHello(); index.php
  • 20. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 20   • User • Item • Mail  • : read -> CsvFileReader • : control -> OrderController • : manage -> ConnectionManager
  • 21. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 21  • save() • getParameter($name) • findByUserName($userName)  boolean (true/false) is has • isAvailable() • isDisabled() • hasParameter($name)  • Item isAvailable() • Database connect() • User isLoggedIn()
  • 22. URL : http://www.asial.co.jp/ Copyright © Asial Corporation. All Rights Reserved. 22 SimpleXML  SimpleXML • XML • RSS • http://php.net/manual/ja/book.simplexml.php  RSS • dump <?php $rss = simplexml_load_file('http://blog.asial.co.jp/rss/rss2.0.php'); // var_dump($rss); // var_dump(get_class_methods($rss)); foreach ($rss->channel->item as $item) { echo htmlspecialchars($item->title, ENT_QUOTES, 'UTF-8')."<br>¥n"; // var_dump($item->guid->attributes()); }