GitHub https://github.com/igordata/PinPIE Дока на русском http://pinpie.ru/ru/manual Дока на англ http://pinpie.ru/en/manual О PinPIE это лёгкий движок маленьких сайтов. Все страницы и обработчики url'ов хранятся в php-файлах. Так же есть возможность кэширования. Механизм кэширования прозрачный и предсказуемый. Просто подключите свои любимые классы, функции, ORM, и можно начинать писать код. # Плюшки Лёгкий Быстрый Легко понять Теги: чанки, сниппеты, константы и для статик файлов Всё хранится в файлах, из чего следует: Редактируйте весь контент в своей любимой IDE или текстовом редакторе, со всеми плюшками: подсветкой, автоформатированием, автосохранением, автозагрузкой и привычными хоткеями Полная поддержка дебага включая конкретные номера строк и контроль выполнения скрипта из IDE Поддержка акселераторов даёт сверхнизкое время отклика Дружит с системами контроля версий — все версии вашего контента защищены от потери при редактировании или как-то иначе Удобно деплоить Удобно бэкапить Прозрачный роутинг урлов Конфиг выбирается в зависимосте от имени сервера — удобно разрабатывать с локальным конфигом, деплоить с другим, всё это живёт в проекте и в системе версий Кеширование сниппетов прозрачно контролируется: не кэшировать (дефолтно), кешировать на точное время в секундах и кешировать навсегда Кэшированные сниппеты обновляют своё содержимое автоматически если их файл или файл их детей любого уровня поменялся Управляемые правила кэширования, основанные на HTTP-коде ответа и GET-параметрах чтобы раздельно контролировать кэширование для 200, 404 и других ситуаций Поддержка темплейтов или вывод текста как есть Возможна интеграция с темплейт-движками типа Twig, Smarty, Mustache и др. Поддержка cookie-free серверного шардинга для параллельной загрузки статик контента Автоматическая преминификация для статик файлов (картинки, css, js, и др.) Автоматическая прекомпрессия (gz) для статик файлов (картинки, css, js, и др.) Требует минимального знакомства с PHP и HTML # Краткий обзор PinPIE спроектирован так чтобы выдавать 100-150 страниц в секунду даже на дешёвом VPS/VDS хостинге. Но его можно использовать и на шаред хостинге. PinPIE хранит весь контент в файлах "*.php", которые кэшируются опкод-кэшером, что позволяет инклудить страницы, сниппеты и чанки просто молниеносно. В PinPIE используются теги. Теги можно кэшировать. Кэширование легко включается и выключается отдельно для каждого тега. Управление кэшированием тегов очень понятное и простое. При обновлении файлов PinPIE автоматически перекэширует то, что изменилось.
Скачал, посмотрел, но лучше бы посмотрел на гитхабе, просто удобнее. Выложи, это же не трудно. Не запускал и предвижу что запуск не ограничится закидыванием в rootdir. Сделай версию под запуск с готовыми страницами и/или добавь отдельную страничку Installation. Я конечно видел во всём этом и конфиг нжинкса и первые шаги, но имеет смысл вынести отдельно. Очень много статики. По большому счету это просто шаблонизатор с роутингом и кешем. Слушай, поясни за страничку давнолоад, я так полагаю ворочается на этом двигле, тогда Page time: 0.758ms (это 0,000758 секунды я так полагаю ?) Memory: 2 MB (0 Bytes) ( 2 мега, серьёзно ? ) Запили прохладную, как скатился до такого, было ли это явлением во сне или пришло в процессе наработок, какие планы по развитию и к чему в итоге ты хотел бы прийти ?
не хочу никого огорчать, но вот этот код: Код (PHP): <?php var_dump(memory_get_peak_usage(true)); exit; выводит те же два мега. А учитывая, что даже жирные страницы с большим количеством кода не добавляют потребления, можно предположить, что PHP выделяет 2 мега минимум, дабы (в подавляющем большинстве случаев) дополнительно память выделять не требовалось, ибо это медленная операция.
Нету. Могу предположить что виновник это php7 ЗЫ: Залил на гитхаб. https://github.com/igordata/PinPIE
1.2Mb php 5.6 это я просто изменил свой файл рабочий, вставив вначало echo memory_get_peak_usage(true); exit; и дальше было много кода... а если создать файл с нуля. пустой и написать тоже самое echo memory_get_peak_usage(true); exit; то выводит 262144
На гилдволе жирнючие страницы тоже не добавляют памяти, т.е. разница между стартовым значением пика и при завершении - ноль байт. Либо два мега для особо жирных страниц, т.е. суммарно 4 МБ. Так что я имею все осонования предположить, шта семёрка кушает миниум два мега, если не хватает - увеличивает вдвое. =) Ну или она жрёт по два мега. Вообще, если тру убрать, то будет так: хорошо это или плохо я не знаю. Я делал штуку, которая работает быстро, инклудит странички и даёт контроль над кешем. Её область применения - маленькие полустатичные сайты. Добавлено спустя 12 минут 46 секунд: короче я на всяк-всяк убрал тру, и пусть будет фалс. Добавлено спустя 2 минуты 8 секунд: Код (PHP): <?php var_dump(memory_get_peak_usage(false)); exit; даёт int(489064) Добавлено спустя 2 минуты 41 секунду: http://pinpie.ru/en/manual/cache http://pinpie.ru/en/download Убрал всё от греха, и тотал тоже убрал. Теперь красиво. Хотя по факту он как жрал два мега, так и жрёт.
это заглушка, которая заставляет всегда перерисовывать сниппет. Код (PHP): $pinpie["cache type"] = "disabled";
чтобы не плодить дополнительной логики, которая будет каждый раз думать об этом, прежде чем выполнить запись или чтение из кеша. Вот заглушка. Вызывается метод, возвращается фалс. А логика для этого случая уже есть и один хрен обязана быть. Удобно же.
я честно непойму. о какой ты логике. есть снипет. нужно кешировать - юзаем кешер, нужно отрабатывать его всегда - некешируем. ну может у тебя внутри там это как-то юзается. я не смотрел подробно. хз
Вот именно об этой. Это нужно будет ввести еще одну переменную в конфиге, которая будет отвечать за запрет кеширования, иметь больший приоритет, потенциально вводить в заблуждение, т.к. в одном месте в конфиге задаётся тип кэширования, а в другом - включено оно или нет. Я решил, что так очевиднее и проще по всем фронтам. Добавлено спустя 10 минут 22 секунды: спасибо, что прочитал, кстати. Я буду дальше переводить и выкладывать. Там дофига ещё чего обсудить есть.
Забубенил перевод доки по конфигу. Кроме примера. http://pinpie.ru/ru/manual/config даже анкоры расставил.
Ну тут просто: список методов. Их немного. http://pinpie.ru/ru/manual/methods --- Добавлено --- Список тегов и их возможностей http://pinpie.ru/ru/manual/tags [[chunk]] Чанки - это чистый текст. Просто текст. Хранятся в php файлах. Выводятся как есть. [[$snippet]] Сниппеты - это php-код, выполняется перед выводом. Может кешироваться. Для этого надо просто указать время в секундах или восклицательный знак: [[5$rand]] например. Очень удобно определять, кешируется или нет - кешиуется, если сам или хоть один из родителей кешируется. Закешированный сниппет обновляется сам, если файл сниппета или любого из его детей поменялся. Очень удобно. Очень. Поправил файл - всё само перерисовалось гарантировано. [[%static=file]] Это для вывода картинок там всяких, скриптов js или css файлов. Сами подменяются на нужные теги, имеют в урле волшебный хэш, чтобы кешировалось пока файл не поменяется, а когда поменяется, поменяется и кэш и тогда браузер перекеширует. Очень удобно Очень. Следить ни за чем не нужно. Гарантировано кэшиуется браузером. Гарантировано обновляется при изменении файлов. Ваще кайф. --- Добавлено --- http://pinpie.ru/ru/manual/cache Кэш удобный и предсказуемый. Сниппеты кешируются на указанное колличество секунд. Они автоматически перерисовываются через это время или если файл сниппета или файлы любых вложенных в него тегов на любой глубине были отредактированы. Само всё. Автоматом. Круто же. Удобняк. Вот три варианта кеширования: [[$some_snippet]] — не кешировать, сниппет будет выполняться каждый раз [[3600$some_snippet]] — сниппет закеширован на один час [[!$some_snippet]] — закэширован навечно. Сниппет кэшируется на PHP_INT_MAX секунд. Соотв. если файл сниппета подредактировать - он перерисовывается. Если изменить файл вложенный где-то там в глубине - тоже. Из коробки умеет кешировать в файлики, Memcache или APC. Апц конечно жуть какой быстрый. Даже наверное незаконно быть таким быстрым, какой он быстрый. Блин, неужели это не круто? Круто же
А какой-то пример одностраничника будет? --- Добавлено --- Я извиняюсь, вроде в первом посте и мало текста, а как-то и не заметил...
ну не одностраничник, но вот http://pinpie.ru/en/examples/basic ещё можно живой сайт посмотреть например http://helpico.ru --- Добавлено --- или http://guildwall.ru =)
Я ж так понимаю, всякие визитки на нем писать как раз самое оно? Хочется что-то более простого и чтоб ничего лишнего не было. Всякие гигантские цмски не хочется использовать под простые нужды, а писать с нуля немного долго, вот и давно присматриваюсь к твоему творению
Самое то на нем писать сайт, когда не хочется переделывать что-то готовое "под себя". Ну и быстродействие на очень высоком уровне.