За последние 24 часа нас посетили 18319 программистов и 1611 роботов. Сейчас ищут 2024 программиста ...

PinPIE

Тема в разделе "Прочее", создана пользователем igordata, 27 мар 2016.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    есть 2 страницы одна простая, вторая для ajax, а содержимое у них одно и тоже (ну в этом содержимом кое что меняется), это содержимое генерируется в сниппете.
    Хотя я эту проблему решил немного по другому (я бы сказал более правильнее) у меня теперь одна страница, а ajax это или нет, решается в зависимости от параметра GET, естественно содержимое теперь генерируется на самой странице, а не в сниппете.

    Еще такое, если сниппета или чего то еще нет, то просто выводится текст сниппета, так вот было бы неплохо добавить параметр на время отладки, что бы в случае отсутствия сниппета происходило die.
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я же показал, как из пхп отрисовать сниппет. ты можешь держать код в сниппете и для обоих случаев использовать
    PHP:
    1. PinPIE::parseString("[[$snippet]]");
    А смысл какой в этом?

    Для отладки есть вот:
    http://pinpie.ru/ru/manual/methods#report лучше всего с xDebug или с иным способом раскрашеным выводом переменных.
     
    VLK нравится это.
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Вкрячил на сайт каменты Disqus.
     
    VLK и artoodetoo нравится это.
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Как включить дебаг для вас, но не включать дебаг для них? В конфиге можно делать типа того:
    PHP:
    1. if (!empty($_SERVER['REMOTE_ADDR']) AND in_array($_SERVER['REMOTE_ADDR'], ['192.168.1.1'])) {
    2.   $debug = true;
    3. }
    И подставить свой ip. Тогда вам всегда будет дебаг включен.

    В других местах можно писать
    Код (Text):
    1. if (CFG::$debug) {
    2.   var_dump(...
    ну или там что-то ещё, и тогда только вы будете видеть это.
     
    VLK нравится это.
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    @VLK
    Я поразмыслил над твоей просьбой грохать содержимое плейсхолдера. И я боюсь это приведёт к непрогнозируемому поведению движка. Т.е. вроде у тебя есть плейсхолдер, есть запись в него, но ничего не выводится потому, что где-то когда-то оно очищается. Я бы не хотел такого. Основные плюсы PinPIE как раз прогнозируемость и однозначность.
    --- Добавлено ---
    ещё можно сделать функцию
    PHP:
    1. function vd ($var) {
    2.   if (CFG::$debug) {
    3.     var_dump ($var);
    4.   }
    5. }
    И тогда её можно вставлять в коде во всякие места и при включении дебага будет выводиться. А при выключении - не будет. Удобно.
     
    VLK нравится это.
  6. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    еще такой вопрос возник, наверное он странный, но все же, зачем разделять чанки и сниппеты? можно сказать они работают одинаково, только одно обрабатывается интерпретатором, а другое нет, но если мне допустим не надо РНР выполнять, то я могу в сниппете просто написать:
    Код (Text):
    1. <div>some html</div>
    без всякого РНР, все тоже самое, в чем прикол?
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    для гарантии того, что чанк никогда-никогда не будет неявно выполнен. Только если ты сам его в ивал загонишь. Так что чанки существуют отдельно для того, чтобы там жил текст.

    Поэтому они и не кешируются, кстати. Им - не нужно.
    --- Добавлено ---
    Ну и скорость прилепает, опять же.
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Если я исчезну вдруг, то имейте в виду, что я пинпай на ооп переписал и он клёвый http://github.com/pinpie/pinpie
    И в composer залил, но там не последняя версия.

    Код (Text):
    1. composer require pinpie/pinpie
    Но версия девелоперская.

    И доку апдейтнул http://pinpie.ru
     
    denis01 нравится это.
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    В доке: "Конфиг выбирается в зависимосте от имени сервера"
     
    denis01 нравится это.
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    о! круто, спасибо!
     
    denis01 нравится это.
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Поставьте звёздочек плс https://github.com/pinpie/pinpie

    Я напыжился и привёл доку в соответствии с изменениями. А они весьма интересные. Я опишу при случае. Как минимум теперь конфиг вообще не обязателен, и код покрыт тестами в основных местах.

    Версия пока девелоперская, в композере надо это указать.

    Но скачать можно и сейчас если кому интересно https://github.com/pinpie/pinpie/archive/dev.zip

    установка http://pinpie.ru/ru/manual/start
     
    VLK и denis01 нравится это.
  12. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    такая вопрос, а как пользоваться конфигом?
    я пытался обращаться в нужных мне местах через
    PHP:
    1. PinPIE::$conf
    но мне писало что нет такого свойства, пытался еще вот так (на всякий случай):
    PHP:
    1. global $conf;
    результат примерно такая же.

    файл с конфигом я создавал (по адресу сайта), туда по разному всякое вписывал не помогает.
    --- Добавлено ---
    и еще страница "скачать" в РУ разделе показывает 404
     
  13. alexforce2

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

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    Поставил
     
    igordata нравится это.
  14. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Спасибо!
     
  15. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    поправь в описании что что обращение к конфигу идет через класс CFG, а не PinPIE.
     
  16. alexforce2

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

    С нами с:
    25 дек 2013
    Сообщения:
    71
    Симпатии:
    12
    1. При открытии http://pinpie.ru/ru/download ничего толкового на странице не отображается, страница похожа на битую
    2. На странице http://pinpie.ru/ru/manual/config имена файлов повторяются в предложении
    При отрисовке каждой страницы PinPIE попытается подключить два файла, если они существуют: /preinclude.php и /preinclude.php.
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    о, спасибо
     
  18. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Поправил ссылку и доку.

    Залил доку (исходники сайта) на гитхаб тоже. https://github.com/pinpie/docs может послужить примером
     
  19. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    эммм.. как обычно странно предложение от миня.

    бывает такая штука когда хочется код разбить на части (на файлы), как вариант я создаю папку в ней у меня файл index.php и допустим 2 файла с html типа все ок и не все ок, допустим html_success.php и html_fail.php, но фигня будет если кто то решит перейти непосредственно на /html_success или /html_fail может нужно забабахать какой то контроллер?
     
  20. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    PinPIE это не замена PHP, а удобное дополнение =)
    Да, конечно, если ты просто положишь рядом две странички - так оно и будет.
    Нужно проверять в коде страницы, что показывать, и либо вынести код в снипеты/чанки, либо ещё куда в другую папку. Сниппеты и чанки в принципе для того и задуманы, чтобы решать такую задачу, как у тебя.

    Встречный вопрос, а как это делается в других движках?
     
  21. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    там MVC.

    ну во первых эти файлы должны возвращать какие то значения или внутри этих файлов должно присваивать какое то значение переменным из других, а снипеты/чанки расчитаны на ECHO.

    ну я сейчас так и делаю, но хотелось бы в одной папке все держать.

    хотя хз как это можно прикрутить, я создал в index.php переменную и в файле проверял определена она или нет, если нет..
    я вот такого толка ф-цию сделал:
    PHP:
    1. controller(isset($page_index), $go_to);
     
  22. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не знаю к сожалению, почему это оказалось трудной задачей. У меня такого же рода задача не вызывает диссонанса при реализации на сниппетах или ещё как. Или даже в одном файле держать оба случая. Хз. Не знаю, плохо это или хорошо.
     
  23. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    denis01 нравится это.
  24. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @igordata классные пингвины в комментариях к commit
     
  25. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Блин, это снеговик. Он прост вчера праздновал, и вот...
     
    denis01 нравится это.