Вот сижу себе разгребаю Slim 3.8.1 (Последний релиз так сказать)... А главное документашка на офе на 3.0 сделана... Ну думаю раз не меняли знач не чё сущесственного... И тут короче при установке и юзании данного продукта наталкиваюсь на проблемы. Код (Text): <br /> <b>Fatal error</b>: Uncaught RuntimeException: Unexpected data in output buffer. Maybe you have characters before an opening <?php tag? in /home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php:585 Stack trace: #0 /home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php(377): Slim\App->finalize(Object(Slim\Http\Response)) #1 /home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php(295): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response)) #2 /home/webadmin/www/matronet.com/index.php(20): Slim\App->run() #3 {main} thrown in <b>/home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php</b> on line <b>585</b><br /> А вот что я начеркал в индексе: PHP: <?php use \Psr\Http\Message\ServerRequestInterface as Request; use \Psr\Http\Message\ResponseInterface as Response; use \System\config; require 'vendor/autoload.php'; $config = new config\Config(); $app = new \Slim\App; Slim\Slim::registerAutoloader(); $app->get('/hello/{name}', function (Request $request, Response $response) { $name = $request->getAttribute('name'); $response->getBody()->write("Hello, $name"); return $response; }); $app->run(); Вот хоть головой об стену но лезть в их код не хочу. Хочу чтобы включил и всё работало Шо за фигня то у всех работает а у меня нет... Как обычно в общем. Ну вот решил попробовать откатить до 3.0 и посмотреть не будет ли изменений.
Не помогло всё та же проблема... Может есть у кого какие мысли ?) --- Добавлено --- PHP: protected function finalize(ResponseInterface $response) { // stop PHP sending a Content-Type automatically ini_set('default_mimetype', ''); if ($this->isEmptyResponse($response)) { return $response->withoutHeader('Content-Type')->withoutHeader('Content-Length'); } // Add Content-Length header if `addContentLengthHeader` setting is set if (isset($this->container->get('settings')['addContentLengthHeader']) && $this->container->get('settings')['addContentLengthHeader'] == true) { if (ob_get_length() > 0) { throw new \RuntimeException("Unexpected data in output buffer. " . "Maybe you have characters before an opening <?php tag?"); } $size = $response->getBody()->getSize(); if ($size !== null && !$response->hasHeader('Content-Length')) { $response = $response->withHeader('Content-Length', (string) $size); } } return $response; } Там некий метод... Понятия не имею что он делает... И php говорит что проблема в строке PHP: "Maybe you have characters before an opening <?php tag?"); mmm Ему не нравится что там тег php ? --- Добавлено --- А вот не фига это конкретно slim ругается что типа что-то не так.... А вот вопрос чё ему не нравистя я всё сделал по мануалу. Прост оскопировал вставил.... Эм --- Добавлено --- Такое ощущение что я что-то не доставил ему...
А это тут каким боком ? Оо --- Добавлено --- фак я понял... Но какого хрена --- Добавлено --- Он говорит что у меня затерялся BOM --- Добавлено --- Да я был прав. Короче у кого вылезит данная ошибка знайте у вас BOM затаился
Напишу на всякий случай, что там сработал исключение из-за условия ob_get_length() > 0 которое определяет что данные уже отправлены и значит отправлять заголовки нельзя. Надо искать где пошёл вывод, @askanim напиши где ты его нашёл, чтобы другие смогли исправить ошибку.
Ток дорвался до компа... ммм, Уже сделаны) --- Добавлено --- @denis01 В самом Slim ошибок нет*, но можно допустить ошибки при использовании его. Я создал index.php через gnome в бубунту... И похоже там затаился BOM в момент написания мною кода, но я не помню ни каких пробелов со стороны моего скрипта... Просто я вообще долго понять не мог чё слим от меня хочет. --- Добавлено --- @acho Смотри я тебе помогу, Это речь о данной ошибки. То есть мой index файл это вывод информации на экран, собственно смотреть надо туда. Ну я покумекал, и предположил что там затаился BOM.коли ошибка говорит что типа у меня что-то есть перед <?php tag... Я вообще не могу пока понять как работает slim... Поэтому не сразу допедрил, что это BOM. Вот сегодня у меня день откровений со Slim будет)
Может офтопик, может нет, но на [del]phpforum.ru[/del] [ins]phpclub.ru[/ins] я встречал замечание от старожила, что Slim работает только на конфигурациях со включенным output_buffering и это конечно родовой дефект. Сам не проверял, просто если что — вспомните об этом.
Виноват, не тот сайт. Пришлось искать и вот: http://phpclub.ru/talk/threads/Недостатки-laravel.81638/page-2#post-740397