PHP

ダウンロード

http://www.php.net/downloads.php PHPダウンロード

サンプルコード

htmlのなかに直接記述できるのがPHPの利点ですね。

<?php
//変数をセット
$a = 1;
echo $a;

?>

オブジェクト指向

クラスを作成し、クラスの中にメソッドを作成する。

クラスを使うときはnewでインスタンスを生成する。

コンストラクタはインスタンスを生成したときに自動的に実行される

コンストラクタのアクセス修飾子は必ず「public」にすること

また、できるだけ外部に不必要なメソッドはprivateで隠し、カプセル化する。

<?php


//クラス
class Player
{
  private $name; // 名前
  private $hp;   // 体力

  // コンストラクタ
  public funcion __construct($name)
  {
    $this->name= $name;
  }

  // メソッド 名前を取得する
  public function getName()
  {
      return $this->name;
  }    
  
  // メソッド 名前を設定する
  public function setName($name)
  {
      $this->name = $name;
  }

  // カプセル化
  private function checkHp($count)
  {
      if (false == is_numeric($count)) {
          return false;
      }
      return true;
  }
}

// インスタンスを生成
$player1 = new Player("ニケ");
$player2 = new Player("ククリ");

// メソッドを実行
$name1 = $player1->getName();
echo $name1; // 実行結果: "ニケ"

?>

クラスの継承・オーバーライド

複数のクラスをつくろときはできるだけコピペは行わうずに、同類のクラスでまとめて親クラスを継承する構造にする

親クラスを継承するにはクラスの宣言でextendsを行う。

修飾子がprivateのメンバは小クラスに引き継がれないので、protected修飾子を使って継承先のクラスでのみ参照可能にする。

<?php

//親クラス
class Player
{
  protected $name; // 名前
  protected $hp;   // 体力

  // コンストラクタ
  protected funcion __construct($name)
  {
    $this->name= $name;
  }

  // メソッド 名前を取得する
  public function getName()
  {
      return $this->name;
  }    
  
  // メソッド 名前を設定する
  public function setName($name)
  {
      $this->name = $name;
  }

  // メソッド 攻撃する
  public function atacck()
  {
      echo $this->name. "は拳を振り上げた!";
  }
}


class WizardPlayer extends Player
{

  // メソッド 魔法を使う
  public function magick()
  {
      echo $this->name. "は呪文を唱えた!";
  }

  // オーバーライド 攻撃する
  public function atacck()
  {
      echo $this->name. "は杖を振りかざした!";
  }
}



// インスタンスを生成
$player1 = new WizardPlayer("ニケ");
$player2 = new WizardPlayer("ククリ");

// メソッドを実行
$player2->magick();  // 実行結果: "ククリは呪文を唱えた!"


$player1->atack();  // 実行結果: "ニケは拳を振り上げた!"
$player2->atack();  // 実行結果: "ククリは杖を振りかざした!"

?>

SMARTY

テンプレートエンジン。 http://www.smarty.net/
php.ini

include_path = ".:/usr/local/lib/php/Smarty"

Setup.php

/public_html/common/setup.php

<?php
require('Smarty.class.php') ;

class Smarty_sample extends Smarty {

function Smarty_sample() 
{

$this->Smarty();

$this->template_dir = '/home/sample/Smarty/templates/';
$this->compile_dir = '/home/sample/Smarty/templates_c/';
$this->config_dir = '/home/sample/Smarty/configs/';
$this->cache_dir = '/home/sample/Smarty/cache/';

}
?>

メインプログラム

/public_html/test.php

<?php
require_once('common/setup.php');

$smarty = new Smarty_sample;

$text = "Hello, World";
$smarty->assign("text",$text);

$smarty->display('test.html');

?>

テンプレート

/Smarty/templates/test.html

<html>
<head>
</head>
<body>
<font>
{$text}
</font>
</body>
</html>
php cms

cakePHP

フレームワーク

http://cakephp.jp/

XAMPP

Apache+MySQL+PHPその他のオールインワン・パッケージ

http://www.apachefriends.org/jp/xampp-windows.html