Zend-log - как исправить ошибку при записи бд?

188
31 августа 2018, 23:20

Пробую использовать этот компонент в своём проекте.

В бд есть таблица 'log' c полями- 'date', 'type', 'event'.

Тестируемый файл в корне на локальном сервере: examplezendbd.php

Fatal error: Uncaught Error: Class 'Zend\Db\Adapter\Adapter' not found in D:\sites\mysite.local\www\examplezendbd.php:22 Stack trace: #0 {main} thrown in D:\sites\mysite.local\www\examplezendbd.php on line 22

<? 
require_once __DIR__ .'/vendor/autoload.php'; 
 
 
  use Zend\Db\Adapter\Adapter as DbAdapter;  
  use Zend\Log\Formatter;  
  use Zend\Log\Writer;  
  use Zend\Log\Logger;  
 
 
/*$adapter = new DbAdapter($driverArray); 
 
 $adapter = new Zend\Db\Adapter\Adapter(array( 
    'driver' => 'Mysqli', 
    'database' => 'localhost', 
    'username' => 'root', 
    'password' => '' 
 )); 
*/ 
 
  // Адаптер базы данных  
  $db = new DbAdapter([  
      'driver'   => 'Pdo',  
      'dsn'      => 'mysql:dbname=mysite-local;host=localhost',  
      'username' => 'root',  
      'password' => 'пароль'  
  ]);  
 
 
 
  /* define('DB_HOST', 'localhost'); 
    define('DB_USER', 'root'); 
    define('DB_PASSWORD', ''); 
    define('DB_NAME', 'mysite-local'); 
     
    $mysqli = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // @ оператор откл.ош. 
    if ($mysqli->connect_errno) exit('Ошибка соединения с БД');// св-во connect_errno - если есть ош - выход  
    $mysqli->set_charset('utf8');  
     
    $mysqli->close(); 
*/ 
 
 
   
// соответствие полей события лога (поля события лога разбирали в предыдущей статье)  
  // колонкам в базе данных, т.е. например, поле времени timestamp из лога  
  // соответствует колонке date в базе  
  $mapping = [  
      'timestamp' => 'date',  
      'priority'  => 'type',  
      'message'   => 'event',  
  ];  
    
    
  // создаем объект писателя (Writer) со следующими параметрами  
  // 1) $db - адаптер базы данных  
  // 2) 'log' - таблица логов в базе  
  // 3) $mapping - карта соответствия  
  $writerDb = new Writer\Db($db, 'log', $mapping); // log table  
    
  // объект форматера  
  $formatter = new Formatter\Base();  
    
  // используется, для преобразования даты события в формат даты MySQL  
  $formatter->setDateTimeFormat('Y-m-d H:i:s');  
  $writerDb->setFormatter($formatter);  
    
    
  // запись лога в файл   
  $writerFile = new Writer\Stream(__DIR__ . '/test.log');  
    
    
  // создаем объект класса Logger и регистрируем в нем   
  // объекты "писателей"  
  $logger = new Logger();  
    
  // объект, пишущий лог в базу данных  
  $logger->addWriter($writerDb, 1);  
    
  // объект, пишущий лог в файл   
  $logger->addWriter($writerFile, 100);  
    
    
  // сообщение лога  
  $logger->info('Informational message');   
 
 
   
  
 
?>

Вот этот класс с папкой Zend\Db\Adapter\Adapter нужно создавать отдельно? Так как в этой дир. у меня папки Db вообще нет. Есть к примеру, файл Db.php в дир. D:\sites\mysite.local\www\vendor\zendframework\zend-log\src\Writer И Db.php в дир. D:\sites\mysite.local\www\vendor\zendframework\zend-log\src\Formatter

READ ALSO
Отправка на эмейл контента, div блока

Отправка на эмейл контента, div блока

Скачал скрипт отправки данных формы на эмейл (имя, эмейл, телефон и проч)

193
PHP CLI как получить домен

PHP CLI как получить домен

Есть PHP процесс который работает в месте с веб-сервером внутри контейнера Docker, процесс запускается с помощью PHP-CLI и после работы должен отдавать...

173
Как заменить идентификатор пользователя в модуле &ldquo;Социальная сеть&rdquo; Битрикса на другое значение?

Как заменить идентификатор пользователя в модуле “Социальная сеть” Битрикса на другое значение?

В настройках модуля "Социальная сеть" Битрикса прописан такой путь Профайл пользователя:user/#user_id#/

167
php curl proxy не работает

php curl proxy не работает

Запрос из командной строки винды:

212