pohapecoder Не фига подобного. Во-первых, не везде одинаковый порядок параметров. Во-вторых, в других расширениях может не быть каких-то функций. И наоборот.
вот я смотрю по коду. там его достаточно немного. и в основном в database.php так что если кому-то необходимо другую БД - то почему бы просто не переписать database.php как надо? хотя я бы вообще не стал использовать данный "фреймворк" уж больно примитивный.
Это тоже легко решается. Добавляем какие нибуть префиксы к функциям, пишем свои функции - декораторы, откуда вызываем реальные и где порядок аргументов нужный. А несуществующие функции эмулировать можно.
tenshi Сделал бы через драйвер - получил бы очередной клон ZF. За ссылку спасибо, сейчас скачаю. pohapecoder У mysqli_ функций совсем другой синтаксис, результат запроса - объект, а не ресурс, и во все функции нужно дополнительно передавать connection id. Но вообще да, я внес изменения только в один файл - database.php. Насчет декораторов и прочего - вы поймите, что я стараюсь сохранять свой "уж больно примитивный" движок простым и внятным, используя все эти дикие паттерны по минимуму. Если вам не нравится - никто не заставляет.
vasa_c А коммунизм предназначен для того, чтобы людям счастье принести. Но вот на практике что-то не получается ни разу.
Да, многие неуровновешенные личности любят перебрать с паттернами и сделать кашу, но нам то что от этого? Сделать переключалку между php_mysql и php_mysqli достаточно просто, тем более, что у mysqli есть процедурный интерфейс, почти идентичный php_mysql.
vasa_c То, что у нас нервы тоже не железные В любом случае, я написал выше, что сразу принял решение поддерживать только одну mysql библиотеку. И выбор я уже сделал в пользу MySQLi. Ну а что доки пришлось написать - оно только к лучшему. Там же не только эта ситуация рассматривается.
Я говорил совсем о другом - если кому-то нужно другую БД не вижу проблем переписать под нее самому же а не автору. И вернуть наработки автору, например. В данном случае будет выбор - использовать обычный БД или другую БД для которой переписан database.php.
tenshi Поднял у себя ваш XSLT-пример. Как ни странно, он даже заработал. Первые впечатления - "неужели для того, чтобы отобразить 5 простых страниц, обязательно необходим XSL из 600 строк и CSS из 500" Чесслово, все то же самое у меня делается намного, намного проще и красивее. Поднял аналогичный проектик на PHPC. Сделал только главную страницу, со списком статей - зато все по-честному, с таким же оформлением страницы, с такой же менюшкой наверху, данные выбираются из базы (только у меня это MySQL таблица, а не SQLite). Результаты бенчмарков: PHPC: XSLT (сборка на стороне клиента): XSLT (сборка на стороне сервера, добавил этот вариант просто ради интереса): Результат: PHPC уделывает по скорости даже XSLT. Хотя разница и небольшая, но все же в пользу моего движка! Замерял таким несложным скриптом: PHP: <?php $address="http://xslt/?article/list"; // XSLT example //$address="http://test/"; // PHPC example $count=100; $time=microtime(true); $curl=curl_init($address); curl_setopt($curl,CURLOPT_RETURNTRANSFER,true); for($index=0; $index<$count; $index++) curl_exec($curl); curl_close($curl); $time=microtime(true)-$time; $per=round($time/$count,3); $time=round($time,3); echo "Тестируемый URL: $address.<br>"; echo "Количество запросов: $count.<br>"; echo "Время работы: $time.<br>"; echo "Среднее время одного запроса: $per.<br>"; ?>
Нарисовал простенькую схему работы PHPC (эх, никудышный из меня дизайнер). Теперь вот думаю, к какому месту документации ее прикрутить
vasa_c У меня (как и везде впрочем ) их два вида - жесткая (HTTP) и мягкая (через мета-заголовок в шаблоне). Первой занимается пакет, все верно, но второй - шаблон. Я решил не усложнять схему.
Dagdamor, на досуге продолжаю разбираться как работает ваша система. Для меня это немного необычно, так как мозги в другую сторону повернуты, но вроде постепенно проникаюсь. Видно что постарались вы на славу и все очень продуманно! Вопросов много, но пока задавать не буду, так как их слишком много и при повторном прочтении многие сами отпадают. Посмотрим, что после третьего захода неясно останется
Namer, спасибо, может, эта новая статейка вам поможет А еще вот, но тут более общие слова, это скорее для тех, кто открывает в первый раз. Костян, "понял ничего" (c)
Завершена работа над еще одной статьей документации: Структура каталогов и назначение файлов. Практическая ценность статьи стремится к нулю, зато какие красивые иконки Также по мере необходимости к Содержанию добавляются все новые и новые статьи-заготовки. Главная страница Документации заметно "покраснела". От стыда, видимо.
За последние несколько дней онлайн-руководство к PHPC очень и очень неплохо подросло. Появился новый раздел, Теория PHPC, с целым набором полезных статей о внутреннем устройстве движка и о том, как он работает. Есть даже наглядный пример сборки страницы по шагам, от начального запроса до готового HTML. Читаем: Порядок обработки запроса. Также появилось описание стандартных констант и несколько общих слов о преимуществах PHP Compiler. Конечно, многого еще не хватает. Нет описания стандартных функций, да и в разделе спецтегов зияет пробел. Но и уже с тем, что есть, документация к PHPC уже вполне на уровне "мировых стандартов". Пора задумываться о переводе на английский... Оффлайн-версия Документации также обновлена. Скачать ее можно по этой ссылке.
Koc Вот бы еще знать, как сравнивать... Если я возьму какое-нибудь простое задание, и сделаю его на своем PHPC и на ZF - где гарантия, что на ZF я сделаю его наилучшим образом? Естественно, PHPC по сравнению с классомонстрами будет летать, тут даже сравнивать нечего. Но сторонники этих фреймворков будут твердить мне, что я их "неправильно готовлю", и в чем-то будут правы. Хотя идея-то неплохая, я что-то наподобие уже делал в прошлом, но не помешает подновить... *пошел качать последний ZF*
Хотел уточнить на счет заголовков которые отдает phpc для контента. Этот вопрос проработан? phpc анализирует отдаваемый контент и подставляет правильные заголовки? Например, тип контента, длина, дата модификации, аттач или в строку и т.д. Или дает возможность управлять заголовками? Вот например и предыдущий и этот офлайн мануал вы по всей видимости отдаете скриптом phpc и он у меня крякозябами загружается в окно браузера, а должен я так понимаю идти как аттач и загружаться как файл. (браузер опера)
Namer Это два разных вопроса. 1. Вопрос управления заголовками в PHPC. Да, PHPC старается всегда отдавать правильные заголовки, если вы пользуетесь для этого правильными функциями. Если вы просто отдаете посетителю текст страницы в шаблоне, то PHPC автоматически прописывает заголовки Content-Type и Content-Length, а также заголовки компрессии (если клиент поддерживает) и кеширования (запрещает полностью). Если вы отдаете файл функцией contentDisposition, то движок посылает заголовки Content-Type (как правило, application/octet-stream) и Content-Length, компрессию и кеширование - запрещает, а также дополнительно посылает заголовки Content-Disposition (аттачмент) и Content-Transfer-Encoding. Этого достаточно, чтобы клиент все получил как надо. 2. Кракозябры в последней версии Оперы. По-моему, это косяк браузера. По крайней мере, я только что проверил работу ссылки http://www.phpc.ru/download/manual : Код (Text): HTTP/1.1 302 Found Server: nginx Date: Thu, 28 Oct 2010 20:37:24 GMT Content-Type: text/html Connection: close X-Powered-By: PHP/5.2.14 Location: /files/manual/phpc.chm HTTP/1.1 200 OK Server: nginx Date: Thu, 28 Oct 2010 20:37:24 GMT Content-Type: application/octet-stream Connection: close Last-Modified: Wed, 27 Oct 2010 20:54:30 GMT ETag: "36304db-5e0b4-4939f6e82ed80" Accept-Ranges: bytes Content-Length: 385204 Такое ощущение, что Опера игнорирует заголовок "Content-Type: application/octet-stream". Но это баг. Попробуйте открыть в Опере прямую ссылку на мануал: http://www.phpc.ru/files/manual/phpc.chm Она обрабатывается Нгинксом, без запуска PHP/PHPC. Будут крокозябры или скачается нормально?
Dagdamor, у меня и на нескольких 9-ых версиях Оперы грузится в окно браузера. Это с настройками по умолчанию. Сделал как вы советовали в настройках Trust Server Types=1 и стало грузиться как файл. Видать это точно недочет Оперы... Другие браузеры изначально загружают как файл.