2016-03-11 3 views
1

Я пытаюсь создать новый экземпляр класса в php, но когда я создаю объект и обновляю страницу, все становится белым. Я честно не знаю, как лучше всего задать этот вопрос, потому что файл класса имеет длину 711 строк, который я не хочу публиковать здесь. Я искал способ загрузить файл, но, похоже, не так, поэтому я просто собираюсь добавить небольшую часть файла класса. Ниже мой код.Проблемы с созданием экземпляра класса

$customer = new Customer(1); 

файл класса

class Customer extends VerySimpleModel 
implements TemplateVariable { 
     static $meta = array(
     'table' => CUST_TABLE, 
     'pk' => array('cust_id'), 
     'joins' => array(
      'location' => array(
       'constraint' => array('cust_id' => 'loc.cust_id'), 
      ), 
      'service' => array(
       'constraint' => array('service_level' => 'service.id'), 
      ), 
     ), 
    ); 

    var $id; var $name; var $contact; var $fname; var $lname; var $isactive; 
    var $contact_phone; var $phone_number; var $fax_number; var $locations; 
    var $domain; var $service_level; var $row; var $address; var $_location = null; 

    function __onload() { 
     $time = null; 
     if (isset($this->passwdreset) && $this->passwdreset) 
      $time=strtotime($this->passwdreset); 
     elseif (isset($this->added) && $this->added) 
     $time=strtotime($this->added); 

     if ($time) 
      $this->passwd_change = time()-$time; //XXX: check timezone issues. 
    } 

    function __toString() { 
     return (string) $this->getName(); 
    } 

    function asVar() { 
     return $this->__toString(); 
    } 

    public static function getCustomer($id) { 
     $instance = new self(); 
     $instance->loadByID($id); 
     return $instance; 
    } 

    public static function withRow(array $row) { 
     $instance = new self(); 
     $instance->fill($row); 
     return $instance; 
    } 

    protected function loadByID($id) { 
     $row = $this->getInfoById($id); 
     $this->fill($row); 
    } 

    protected function fill(array $row) { 
     $this->row=$row; 
     $this->id=$row["cust_id"]; 
     $this->cust_name=$row["cust_name"]; 
     $this->domain=$row["domain"]; 
     $this->isactive=$row["isactive"]; 
     $this->service_level=$row["service_level"]; 
    } 

    static function getVarScope() { 
     return array(
      'name' => array('class' => 'Customer', 'desc' => __('Customer')), 
      'contact' => 'Primary contact', 
      'phone' => 'Phone number', 
      'address' => 'Address', 
      'isactive' => 'Active', 
      'serviceLevel' => 'Service Level' 
     ); 
    } 

    function getId() { 
     if ($this->id) { 
      return $this->id; 
     } 
     return $this->cust_id; 
    } 

    function getInfoById($id) { 
     $sql='SELECT * FROM '.CUST_TABLE.' WHERE cust_id='.db_input($id); 

     if(($res=db_query($sql)) && db_num_rows($res)) 
      return db_fetch_array($res); 

     return null; 
    } 

    function getInfo() { 
     return $this->row; 
    } 

    static function create($vars=false, &$errors=array()) { 
     $cust = parent::create($vars); 
     $cust->created = SqlFunction::NOW(); 

     return $cust; 
    } 

    static function __create($vars, &$errors) { 
     $cust = self::create(); 
     $cust->update($vars, $errors); 

     return isset($cust->id) ? $cust : null; 
    } 
} 

Ошибки

[11-Mar-2016 15:05:13 UTC] PHP Warning: include(ICCLUDE_DIRclass.customer.php): failed to open stream: No such file or directory in C:\Websites\OSTickets\upload\include\staff\ticket-view.inc.php on line 3

[11-Mar-2016 15:05:13 UTC] PHP Stack trace:

[11-Mar-2016 15:05:13 UTC] PHP 1. {main}() C:\Websites\OSTickets\upload\scp\tickets.php:0

[11-Mar-2016 15:05:13 UTC] PHP 2. require_once() C:\Websites\OSTickets\upload\scp\tickets.php:546

[11-Mar-2016 15:05:13 UTC] PHP Warning: include(): Failed opening 'ICCLUDE_DIRclass.customer.php' for inclusion (include_path='./;C:/Websites/OSTickets/upload/include/;C:/Websites/OSTickets/upload/include/pear/') in C:\Websites\OSTickets\upload\include\staff\ticket-view.inc.php on line 3

[11-Mar-2016 15:05:13 UTC] PHP Stack trace:

[11-Mar-2016 15:05:13 UTC] PHP 1. {main}() C:\Websites\OSTickets\upload\scp\tickets.php:0

[11-Mar-2016 15:05:13 UTC] PHP 2. require_once() C:\Websites\OSTickets\upload\scp\tickets.php:546

[11-Mar-2016 15:05:13 UTC] PHP Fatal error: Class 'Customer' not found in C:\Websites\OSTickets\upload\include\staff\ticket-view.inc.php on line 28

[11-Mar-2016 15:05:13 UTC] PHP Stack trace:

[11-Mar-2016 15:05:13 UTC] PHP 1. {main}() C:\Websites\OSTickets\upload\scp\tickets.php:0

[11-Mar-2016 15:05:13 UTC] PHP 2. require_once() C:\Websites\OSTickets\upload\scp\tickets.php:546

[11-Mar-2016 15:05:13 UTC] PHP Warning: include(ICCLUDE_DIRclass.customer.php): failed to open stream: No such file or directory in C:\Websites\OSTickets\upload\include\staff\ticket-view.inc.php on line 3

[11-Mar-2016 15:05:13 UTC] PHP Stack trace:

[11-Mar-2016 15:05:13 UTC] PHP 1. {main}() C:\Websites\OSTickets\upload\scp\tickets.php:0

[11-Mar-2016 15:05:13 UTC] PHP 2. require_once() C:\Websites\OSTickets\upload\scp\tickets.php:546

[11-Mar-2016 15:05:13 UTC] PHP Warning: include(): Failed opening 'ICCLUDE_DIRclass.customer.php' for inclusion (include_path='./;C:/Websites/OSTickets/upload/include/;C:/Websites/OSTickets/upload/include/pear/') in C:\Websites\OSTickets\upload\include\staff\ticket-view.inc.php on line 3

[11-Mar-2016 15:05:13 UTC] PHP Stack trace:

[11-Mar-2016 15:05:13 UTC] PHP 1. {main}() C:\Websites\OSTickets\upload\scp\tickets.php:0

[11-Mar-2016 15:05:13 UTC] PHP 2. require_once() C:\Websites\OSTickets\upload\scp\tickets.php:546

[11-Mar-2016 15:05:13 UTC] PHP Fatal error: Class 'Customer' not found in C:\Websites\OSTickets\upload\include\staff\ticket-view.inc.php on line 28

[11-Mar-2016 15:05:13 UTC] PHP Stack trace:

[11-Mar-2016 15:05:13 UTC] PHP 1. {main}() C:\Websites\OSTickets\upload\scp\tickets.php:0

[11-Mar-2016 15:05:13 UTC] PHP 2. require_once() C:\Websites\OSTickets\upload\scp\tickets.php:546

+0

Возможно, вы найдете дополнительную информацию в журнале ошибок сервера или на экране, если вы включили отображение ошибок. – jeroen

+0

Вам нужно включить отчет об ошибках - или посмотреть в файле журнала ошибок. WSOD (белый экран смерти) _usually_ указывает на ошибку синтаксического анализа, что означает, что в вашем скрипте что-то не так. – Farkie

+0

[Включить отчет об ошибках в PHP] (https://blog.flowl.info/2013/enable-display-php-errors/) – DanFromGermany

ответ

0

Жаль, что я сделал тупую ошибку, по-видимому. Включить вверху написано неправильно. Самое смешное, что я скопировал и вставил эту часть, поэтому я понятия не имею, как она получила орфографическую ошибку.

Смежные вопросы