За последние 24 часа нас посетили 26449 программистов и 1545 роботов. Сейчас ищет 821 программист ...

Slim разбор полётов

Тема в разделе "Беседы", создана пользователем askanim, 23 мар 2017.

  1. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Вот сижу себе разгребаю Slim 3.8.1 (Последний релиз так сказать)... А главное документашка на офе на 3.0 сделана... Ну думаю раз не меняли знач не чё сущесственного...
    И тут короче при установке и юзании данного продукта наталкиваюсь на проблемы.
    Код (Text):
    1. <br />
    2. <b>Fatal error</b>:  Uncaught RuntimeException: Unexpected data in output buffer. Maybe you have characters before an opening &lt;?php tag? in /home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php:585
    3. Stack trace:
    4. #0 /home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php(377): Slim\App-&gt;finalize(Object(Slim\Http\Response))
    5. #1 /home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php(295): Slim\App-&gt;process(Object(Slim\Http\Request), Object(Slim\Http\Response))
    6. #2 /home/webadmin/www/matronet.com/index.php(20): Slim\App-&gt;run()
    7. #3 {main}
    8.   thrown in <b>/home/webadmin/www/matronet.com/vendor/slim/slim/Slim/App.php</b> on line <b>585</b><br />
    А вот что я начеркал в индексе:
    PHP:
    1. <?php
    2.     use \Psr\Http\Message\ServerRequestInterface as Request;
    3.     use \Psr\Http\Message\ResponseInterface as Response;
    4.     use \System\config;
    5.  
    6.  
    7.  
    8.     require 'vendor/autoload.php';
    9.  
    10.     $config = new config\Config();
    11.  
    12.     $app = new \Slim\App;
    13.     Slim\Slim::registerAutoloader();
    14.     $app->get('/hello/{name}', function (Request $request, Response $response) {
    15.         $name = $request->getAttribute('name');
    16.         $response->getBody()->write("Hello, $name");
    17.  
    18.         return $response;
    19.     });
    20.  
    21.     $app->run();
    Вот хоть головой об стену но лезть в их код не хочу. Хочу чтобы включил и всё работало :D
    Шо за фигня то у всех работает а у меня нет... Как обычно в общем.
    Ну вот решил попробовать откатить до 3.0 и посмотреть не будет ли изменений.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    так что тут?
     
  3. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Не помогло всё та же проблема...
    Может есть у кого какие мысли ?)
    --- Добавлено ---
    PHP:
    1. protected function finalize(ResponseInterface $response)
    2.     {
    3.         // stop PHP sending a Content-Type automatically
    4.         ini_set('default_mimetype', '');
    5.  
    6.         if ($this->isEmptyResponse($response)) {
    7.             return $response->withoutHeader('Content-Type')->withoutHeader('Content-Length');
    8.         }
    9.  
    10.         // Add Content-Length header if `addContentLengthHeader` setting is set
    11.         if (isset($this->container->get('settings')['addContentLengthHeader']) &&
    12.             $this->container->get('settings')['addContentLengthHeader'] == true) {
    13.             if (ob_get_length() > 0) {
    14.                 throw new \RuntimeException("Unexpected data in output buffer. " .
    15.                     "Maybe you have characters before an opening <?php tag?");
    16.            }
    17.            $size = $response->getBody()->getSize();
    18.            if ($size !== null && !$response->hasHeader('Content-Length')) {
    19.                $response = $response->withHeader('Content-Length', (string) $size);
    20.            }
    21.        }
    22.  
    23.        return $response;
    24.    }
    Там некий метод... Понятия не имею что он делает... И php говорит что проблема в строке
    PHP:
    1. "Maybe you have characters before an opening <?php tag?");
    mmm Ему не нравится что там тег php ?
    --- Добавлено ---
    А вот не фига это конкретно slim ругается что типа что-то не так.... А вот вопрос чё ему не нравистя я всё сделал по мануалу. Прост оскопировал вставил.... Эм
    --- Добавлено ---
    Такое ощущение что я что-то не доставил ему... :D
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Cannot modify header information - headers already sent by
     
    askanim нравится это.
  5. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    А это тут каким боком ? Оо
    --- Добавлено ---
    фак я понял... Но какого хрена
    --- Добавлено ---
    Он говорит что у меня затерялся BOM
    --- Добавлено ---
    Да я был прав. Короче у кого вылезит данная ошибка знайте у вас BOM затаился :D
     
    denis01 нравится это.
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    не ты был прав, а ромач тебе подсказал. где "спасибо", чувак?
    --- Добавлено ---
    где лайки?
     
    askanim и denis01 нравится это.
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Напишу на всякий случай, что там сработал исключение из-за условия ob_get_length() > 0 которое определяет что данные уже отправлены и значит отправлять заголовки нельзя. Надо искать где пошёл вывод, @askanim напиши где ты его нашёл, чтобы другие смогли исправить ошибку.
     
  8. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    вроде он про BOM говорил
     
  9. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    Ток дорвался до компа... ммм, Уже сделаны)
    --- Добавлено ---
    @denis01 В самом Slim ошибок нет*, но можно допустить ошибки при использовании его. Я создал index.php через gnome в бубунту... И похоже там затаился BOM в момент написания мною кода, но я не помню ни каких пробелов со стороны моего скрипта... Просто я вообще долго понять не мог чё слим от меня хочет.
    --- Добавлено ---
    @acho Смотри я тебе помогу,
    Это речь о данной ошибки. То есть мой index файл это вывод информации на экран, собственно смотреть надо туда. Ну я покумекал, и предположил что там затаился BOM.коли ошибка говорит что типа у меня что-то есть перед <?php tag...

    Я вообще не могу пока понять как работает slim... Поэтому не сразу допедрил, что это BOM. Вот сегодня у меня день откровений со Slim будет)
     
    denis01 нравится это.
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Может офтопик, может нет, но на [del]phpforum.ru[/del] [ins]phpclub.ru[/ins] я встречал замечание от старожила, что Slim работает только на конфигурациях со включенным output_buffering и это конечно родовой дефект. Сам не проверял, просто если что — вспомните об этом.
     
    #10 artoodetoo, 24 мар 2017
    Последнее редактирование: 25 мар 2017
  11. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Это когда было? Домен вот на продаже))
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    mahmuzar нравится это.