2015-02-21 5 views
0
class A { 
    public function model($name) { 
     if (file_exists($name.'.php')) { 
      require $name.'.php'; 
      $this->$name = new $name(); 
     } 
    } 
} 
class C extends A { 
    function __construct() { 
     $this->load = $this; 
     $this->load->model('test'); 
     $this->test->say(); 
    } 
} 

$Controller = new C(); 

Я хочу создать простой класс воспламенителя как класс загрузчика. Есть ли подходящий способ для выполнения этой техники?Метод цепочки

+2

Чтобы использовать цепочку методов, каждый метод должен возвращать объект (обычно используя метод 'return $ this' в методе) –

ответ

1

Вы бы использовали модель Fluent Interface.

<?php 
class Employee 
    { 
    public $name; 
    public $surName; 
    public $salary; 

    public function setName($name) 
    { 
     $this->name = $name; 

     return $this; 
    } 

    public function setSurname($surname) 
    { 
     $this->surName = $surname; 

     return $this; 
    } 

    public function setSalary($salary) 
    { 
     $this->salary = $salary; 

     return $this; 
    } 

    public function __toString() 
    { 
     $employeeInfo = 'Name: ' . $this->name . PHP_EOL; 
     $employeeInfo .= 'Surname: ' . $this->surName . PHP_EOL; 
     $employeeInfo .= 'Salary: ' . $this->salary . PHP_EOL; 

     return $employeeInfo; 
    } 
} 

# Create a new instance of the Employee class: 
$employee = new Employee(); 

# Employee Tom Smith has a salary of 100: 
echo $employee->setName('Tom') 
       ->setSurname('Smith') 
       ->setSalary('100'); 

# Display: 
# Name: Tom 
# Surname: Smith 
# Salary: 100 
Смежные вопросы