За последние 24 часа нас посетили 19462 программиста и 1632 робота. Сейчас ищут 1172 программиста ...

Готовое решение: PHPC — PHP Compiler CMF

Тема в разделе "Решения, алгоритмы", создана пользователем Dagdamor, 2 мар 2007.

  1. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Небольшой движок, разработкой которого я занимаюсь уже лет 5. Предлагаю вашему вниманию, надеюсь на вразумительные отзывы, может быть даже на сотрудничество :) движок достаточно простой, и в устройстве, и в использовании. Что-то типа фреймворка, т.е. это не CMS.

    Сразу о минусах:

    - Пишу я его для собственного удовольствия, что-то типа хобби, поэтому все двигается медленно...
    - Офсайта до сих пор нет, не доходят руки никак.
    - Документация в зачаточном состоянии.
    - Стиль написания кода, мягко говоря, отличается от PEAR.
    - Комментарии в коде отсутствуют как явление. Еще одна дурацкая привычка.

    Ссылка на последнюю версию (2.4.4)
    Ссылка на документацию
    Пример сайта (на инглише)
    Скриншоты админки (этого же сайта)
     
  2. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Документация пополнилась кучей новых разделов. Теперь ее уже не так стыдно показать другим ;)
    http://manual.phpc.ru - зацените. Пока по-прежнему на движке форума.
     
  3. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Выложил сегодня новый плагин для движка - "Мета-теги" (для поисковой оптимизации). Ознакомиться можно здесь.
    P.S. Спасибо за новый раздел форума, но прошу в названии темы поменять CMS на CMF. :)
     
  4. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    имхо, cmf не должен привязаваться к корню сайта.
     
  5. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ti
    А почему бы и нет - ведь это не имеет отношения к архитектуре/функционалу, скорее требование уважения со стороны конечного разработчика. Хочешь взвести хороший проект - изволь предоставить ему отдельный хост. Да и шаблоны при такой стандартизации выглядят проще, а ссылки - опрятнее.
     
  6. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    Готов спорить.

    Отмечу, что когда в первый раз поставил ваш CMF я его просто снес по этой причине.

    чем ссылка path/1/2/3 хуже и неопрятне вашей /path/1/2/3 ?
    с шаблонами та же история.

    достаточно добавить тег <base href="" />

    это сулит еще одним преимуществом:
    ссылки остаются короткими, а при сохранении страницы не бьются.

    Еще одна банальная причина того, почему не стоит привязываться к корню.
    Есть хост, на нем крутится сайт.
    Вы работали над глобальным изменением сайта.
    Как вам проверить работоспособность на хосте, не мешая работе сайта?
     
  7. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    загонять программиста в какие-либо рамки - это привиления CMS. CMF же в идеале вообще ничего не должна навязывать. более того, хорошую CMF легко прикрутить к любой CMS.
    сабж не пробовал, но по скринам это явно CMS.
     
  8. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ti
    Только из-за того, что не было свободного хоста для установки новой системы? :? Ну вы даете... это же самостоятельная разработка, я когда запускаю у себя что-то новое, никогда не начинаю с того, что пихаю систему куда попало (по сути у меня есть тестовый хост специально для таких случаев). Без обид, но это аргумент из разряда "у меня ваша система не заработала, ибо лень было запускать Апач".

    В шаблоне ничем не хуже, а вот на сайте - хуже, ибо к ней будет дописан префикс (имя каталога, куда вы поставили систему). Соответственно посетителю придется иметь дело именно с ней.

    Тег base href не работает для javascript, там везде придется прописывать абсолютный адрес ручками... а насчет битья страниц при сохранении не понял. Если на странице есть base href, ссылки точно так же не будут работать локально, пока вы его не уберете из кода :)
     
  9. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    +1

    у меня ваша система не заработала ибо лень под нее отдельный хост шевелить - я вообще существо ленивое :)
    у меня все примитивно - хост test в нем туева куча всего. Столько CMS переставил - все на "ура" шли, а тут на тебе - "даешь под все отдельный хост!"

    аргументируйте

    а зачем локально? Сслыки будут вести на сайт, а так они ведут никуда
     
  10. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Ti
    Я точно такое же существо, но чужие разработки все-таки предпочитаю тестировать в человеческих условиях, а не коммунальных - поэтому тоже есть хост test, но я стараюсь держать его пустым. То же самое с базами данных - каждому проекту своя, а не все в куче и с префиксами.

    Вот простенький пример:

    <script>setTimeout('document.location.href=\'folder2/page2\'',1000);</script>

    Если такой скрипт выполнить на странице /folder1/page1, то он перебросит вас на страницу /folder1/folder2/page2, что, разумеется, неправильно (тестировать на IE6) - независимо от того, есть у вас на странице тег base href или нет. Если использовать ссылки от корня, т.е. начинающиеся с "/" - все работает как часы.
     
  11. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    у вас есть раздел сайта (где и стоит система)

    ему вы выставляете <base href="http://site.ru/path_your_project/" /> -- это и есть своеобразный "корень" от которого все будет расти

    <script>setTimeout('document.location.href=\'folder2/page2\'',1000);</script>
    http://site.ru/path_your_project/folder2/page2 - все работает, всем хорошо
     
  12. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
  13. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    IE жжот :)
    если проблема только в JS можно добавлять значение base href
     
  14. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Все так и есть - скрины, которые ты видел, это скрины админки сайта, взведенного на PHPC. Для этого сайта была написана своя CMS (за неделю - управление галереями, их владельцами, картинками, комментариями, блок статистики, гостевая и поиск), то есть для данного сайта фреймворк понемногу "оброс" модулями и стал системой управления контентом. Кроме управления собственно контентом, в админке остались также блоки управления и сайтом в целом - страницы, шаблоны и прочее (права доступа, пусть и примитивно, но разруливаются), хотя обычного контент-менеджеру к таким вещам лучше не допускать.
     
  15. ONK

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

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Dagdamor, ИМО название лучше сменить, понятие "compiler" имеет вполне устоявшийся смысл, и применительно к данному проекту водит в заблуждение.
     
  16. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    ONK
    Возможно, но мне это название нравится...
     
  17. Anonymous

    Anonymous Guest

    ONK, ты ковырял исходники? Compiler там есть =)
     
  18. ONK

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

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Горбунов Олег, честно говоря нет, где он там и что делает?
     
  19. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    ONK, компилирует PHP, неужели непонятно ;)
    Серьезно - он "компилирует" шаблоны во внутренний код. Код кешируется и потом исполняется eval()-ом.

    Интересно, хоть кто-нибудь здесь вообще ставил у себя мой движок? Пока что я вижу только три отзыва:
    - не смог поставить, нету чистого хоста (Ti);
    - асилил только скриншоты (dark-demon);
    - не понравилось название (ONK).
    Профессионалы йопт :D
     
  20. ONK

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

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Dagdamor, пхп не компилирует, он парсит программный код превращая его в поток своих элементарных инструкций + заполняет хэштаблицы данными, а затем запускает процесс последовательного вызова встроенных микропрограмм в соответствии с найденными инструкциями и данными.
    Судя по всему речь идёт о Самарти, но он тоже не компилятор ;). Хотя он полноценный парсёр собственного языка.
     
  21. ONK

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

    С нами с:
    4 фев 2006
    Сообщения:
    281
    Симпатии:
    0
    Адрес:
    СПб
    Если называть компиляторами всё что ни попадя, то меня можно считать создателем 5 различных компиляторов. ;)
     
  22. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    ONK
    Да кто со всем этим спорит - понятно, что мой движок нельзя назвать настоящим компилятором ;) не в машинный код же он компилирует. Точно так же можно сказать про phpNuke - название некорректное, так как в нем нет ядерной бомбы внутри. Название - прерогатива автора движка, кто как хочет, тот так и называет. Главное, чтобы хорошо запоминалось. Читай мой пост тремя мессагами выше ;)

    P.S. К Смарти мой движок не имеет никакого отношения (Боже упаси)
     
  23. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    по поводу компиляции - рекомендую прочитать мой опус на википедии: вот тут

    Dagdamor, я посмотрел исходники... многа кода, всё-равно ниасилил :) а где тама темплейты? что-то я не нашёл...
     
  24. Anonymous

    Anonymous Guest

    Щас он скажет где темплейты, токо без холиваров, ок? (я просто знаю где темплейты ;) )
     
  25. Dagdamor

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

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    dark-demon
    Не скажу - поставь уже движок, сам найдешь. Сколько можно щупать с закрытыми глазами.
    По поводу компиляции... хе-хе, а вот под твое определение компилятора мой движок как раз подпадает (точнее, его шаблонизатор). Ибо он, транслируя язык шаблонизатора в "как бы байт-код" PHP, собирает информацию обо всех шаблонах, использованных на странице (в том числе вспомогательных) в один блок. Это было сделано в целях быстродействия движка - но сборка в данном случае налицо ;)