Download presentation
Presentation is loading. Please wait.
1
PHPの基礎と開発手法 Based on PHP5
Yuki Matsukura 8/9/2018
2
アウトライン PHPの基礎 (15分) PHP5の新機能 (10分) PHPを利用した開発(5分) まとめ (2分) 説明 実装
オブジェクト周り 例外 PHPを利用した開発(5分) 開発ツール 業界の標準 まとめ (2分)
3
PHPの基礎
4
動作概念 Apacheのモジュール プログラム呼び出し 一般にPHPが利用される 動作軽量 コマンドラインで使用 Perlのようなイメージ
#!/usr/local/bin/php <?php … ?> 出展:
5
PHPの動かし方 <?php ?> 拡張子 <html>
で始まり ?> で終わる 拡張子 .php PHPスクリプト .phps PHPソース <html> <h1>Say something</h1> <?php print “hello”; ?> </html>
6
PHPの文法 変数/コメント 変数 コメント 型の概念は無い 変数の宣言必要なし // /* … */ <html>
<h1>Say something</h1> <?php // 代入 $message = “HELLOOOO”; // 表示 print $message; ?> </html>
7
PHPの文法 関数 利用 作る <?php // 利用 print date('Y-m-d'); print plus(1,3);
name($param1,$param2); 作る function name($param1){ } <?php // 利用 print date('Y-m-d'); print plus(1,3); // 作る function plus($first, $secound){ return $first + $secound; } ?>
8
PHPの文法 配列 <?php $a1 = array('dog', 'cat', 'bird'); $a2[0] = 'dog';
$a2[1] = 'cat'; $a2[2] = 'bird'; // 表示 print '<pre>'; print_r($a1); print_r($a2); print '</pre>'; ?>
9
PHPの文法 Hash <?php $h1 = array( 'dog' => '犬', 'cat' => '猫',
'bird' => '鳥' ); $h2['dog'] = '犬'; $h2['cat'] = '猫'; $h2['bird'] = '鳥'; // 表示 print '<pre>'; print_r($h1); print_r($h2); print $h1['dog']; print '</pre>'; ?>
10
実装 – モデル Formに文字を入力 (form.html) 文字列を表示 (postecho.php)
11
ごにょごにょ
12
主な機能 ファイルアクセス DBアクセス Socket 正規表現 XML,XSL Session その他
Postgres,MySQL,Oracleなど Socket 正規表現 XML,XSL Session その他 PDF作成 IMAP LDAP Javaとの連携 などの便利な関数がたくさん用意されている
13
PHP5の新機能
14
簡単な歴史 1995 PHP/FI 1998/6 PHP3 2000/5/22 PHP4 2004/7/13 PHP5
15
オブジェクト指向 オブジェクト指向でも書ける PHP4 オブジェクト クラス PHP5(PHP4の拡張) アクセス制限できるようになった
16
新機能 - オブジェクト アクセス制限 例外 抽象クラスとメソッド (abstract) インタフェース (interface)
private protected 例外 抽象クラスとメソッド (abstract) インタフェース (interface) final 修飾子 Clone (__clone() ) コンストラクタ ( __construct() ) デストラクタ ( __destruct() )
17
Classのコード アクセス制限 private protected 宣言したクラスだけからアクセス可能 サブクラスからもアクセス可能
<?php class TestClass(){ private $attribute1 = 'dog'; protected $attribute2 = 'cat'; private function getAttribute1(){ return $this->$attribute1; } function getAttribute2(){ return $this->$attribute2; $class = new TestClass(); print $class->getAttribute2(); ?>
18
例外処理 try … throw … catch Javaと同じ <?php class TestClass(){
private $attribute1 = 'dog'; protected $attribute2 = 'cat'; private function getAttribute1(){ return $this->$attribute1; } function getAttribute2(){ return $this->$attribute2; $class = new TestClass(); print $class->getAttribute2(); ?>
19
Classのコード アクセス制限 private protected 宣言したクラスだけからアクセス可能 サブクラスからもアクセス可能
<?php class TestClass(){ private $attribute1 = 'dog'; protected $attribute2 = 'cat'; private function getAttribute1(){ return $this->$attribute1; } function getAttribute2(){ return $this->$attribute2; $class = new TestClass(); print $class->getAttribute2(); ?>
20
Classのコード アクセス制限 private protected 宣言したクラスだけからアクセス可能 サブクラスからもアクセス可能
<?php class FileNotFoundException extends exception { function FileNotFoundException($_error) { $this->error = $_error; } function getException() { return $this->error; } class MyClass { function open($filename) if(!file_exists($filename)) throw new FileNotFoundException("file not found"); try{ $class = new MyClass(); $class->open("non_exists_file"); } catch(FileNotFoundException $e) { die($e->getException()); ?>
21
PHPを利用した開発
22
開発ツール Eclipse Emacs? TruStudioプラグイン Apache PHP RDBMS
Apache PHP RDBMS Emacs?
23
MVC 改変:
24
フレームワーク mojavi Phrame WaWaWa http://www.mojavi.org/
WaWaWa
25
優秀なクラスライブラリ達 PEAR ADOdb SMARTY PHPにデフォルトで付属 多種多様なライブラリ
ADOdb DBを抽象化し,便利なメソッドを用意 PEARのDBより高速 SMARTY Viewを分けるためのテンプレートエンジン
26
まとめ
27
まとめ 既存のライブラリを利用する MVCを意識したコーディング ライブラリ全般:PEAR DBMS抽象化:ADOdb
HTMLテンプレート:SMARTY フレームワーク MVCを意識したコーディング MVCが入り交じったコードを書くな! フレームワークを利用する.
28
参考文献 PHP Official Site Einführung in PHP und MySQL PHP5徹底攻略
Einführung in PHP und MySQL PHP5徹底攻略
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.