Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Smarty
Форумы портала PHP.SU » » CMS и фреймворки » Smarty

Страниц (1): [1]
 

1. Doox911 - 05 Февраля, 2014 - 06:11:58 - перейти к сообщению
Доброго времени суток.

В документации написано, что Smarty работает начиная с версии php 4.06. У меня 5.3 что на localhost что на сервере. Выдаёт такое сообщение при следующем описании:
Файл к которому обращается броузер:
Ошибка:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Fatal error: Uncaught --> Smarty: PHP5 requires you to call __construct() instead of Smarty() <-- thrown in
  3.  

PHP:
скопировать код в буфер обмена
  1.  
  2. require('smarty_config.php');
  3. echo '1';
  4. $smarty = new Smarty_GuestBook();
  5.   echo '2';
  6. $smarty->assign('name','Ned');
  7.  echo '3';
  8. $smarty->display('index.tpl');
  9.  

Файл конфигурации:
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. // загружаем библиотеку Smarty
  4. require('libs/Smarty.class.php');
  5.  
  6. // Файл setup.php - это хорошее место для
  7. // подключения библиотечных файлов вашего приложения,
  8. // вы можете сделать это прямо здесь. Пример:
  9. // require('guestbook/guestbook.lib.php');
  10.  
  11. class Smarty_GuestBook extends Smarty {
  12.  
  13.    function Smarty_GuestBook()
  14.    {
  15.  
  16.         // Конструктор класса.
  17.         // Он автоматически вызывается при создании нового экземпляра.
  18.  
  19.         $this->Smarty();
  20.  
  21.         $this->template_dir = 'templates/';
  22.         $this->compile_dir  = 'templates_c/';
  23.         $this->config_dir   = 'configs/';
  24.         $this->cache_dir    = 'cache/';
  25.         $this->debugging = true;
  26.         $this->caching = true;
  27.         $this->assign('name_1', 'Guest Book');
  28.    }
  29.  
  30. }
  31.  


Почему?) Спасибо.
2. Invert - 05 Февраля, 2014 - 06:22:28 - перейти к сообщению
Он же вам и сообщает, что вместо Smarty() нужно вызвать конструктор родителя. А конструктор в php5 это __construct(). Вы все еще под php4 программируете? )

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. class Smarty_GuestBook extends Smarty {
  3.  
  4.    function __construct ()
  5.    {
  6.  
  7.         // Конструктор класса.
  8.         // Он автоматически вызывается при создании нового экземпляра.
  9.  
  10.         parent::__construct();
  11.  
  12.         $this->template_dir = 'templates/';
  13.         $this->compile_dir  = 'templates_c/';
  14.         $this->config_dir   = 'configs/';
  15.         $this->cache_dir    = 'cache/';
  16.         $this->debugging = true;
  17.         $this->caching = true;
  18.         $this->assign('name_1', 'Guest Book');
  19.    }
  20.  
  21. }
  22.  
3. Doox911 - 05 Февраля, 2014 - 20:59:50 - перейти к сообщению
[quote=Invert][/quote]
Invert пишет:
function __construct ()
   {
 
        // Конструктор класса.
        // Он автоматически вызывается при создании нового экземпляра.
 
        parent::__construct();


Спасибо большое. Нет)

 

Powered by ExBB FM 1.0 RC1