За последние 24 часа нас посетили 20687 программистов и 1698 роботов. Сейчас ищут 1790 программистов ...

Знакомьтесь, PinCMS

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

  1. igordata

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

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

    а впечатления как? =) быстро пашет? между прочим в сниппеты можно параметры передавать кажется даже на несколько строк разбивать.
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    я сейчас не помню цифирь, но из кеша раз в 5 быстрее точно ) но это опять же все на уровне "нелоуворд" опробывалось )
     
  3. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Рано. Вы первые живые люди кроме меня и пары друзей, которые это увидели. Повычистить надо.
     
  5. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Крутые, у вас всё работает.
    А у меня теперь
    Код (Text):
    1. notfound 404 52.003ms
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    1. pin.class.php
    а в чем логика такого роутинга?
    если я запросил определенный урл, то мне нужен именно он либо ошибка, а получается я получу в результате неизвестно что, вместо сообщения что урл неверный.

    2. когда я вижу код типа
    include 'classes/pincms.class.php';
    то ожидаею что будет просто инклюд кода класса. был удивлен обнаружив там внизу еще и вызов PinCMS::Init();
    неправильно это както. подгрузка класса это одно, а инициализация это другое. и в другом месте должно быть.

    3. богатое наличие приват свойств в классах - говорит о том что делать наследников будет невозможно или геморно. код всегда развивается. где гарантия что завтра не нужно будет сделать класс наследник с более высокой абстракцией. протектед хотябы.

    4. файлы разные: cache.class.filecache.php, cache.class.memcache.php - а классы внутри называются одинаково. class Cache ... непорядок. причем в одном из них есть сразу вызов Cache::Init(); а в другом нет. это опять отсыл к
    вопросу 2

    5. неоднократное
    Код (PHP):
    1. if (file_exists($path)) {
    2.   include $path;
    3. }
    ну а если нет такого файла? может ошибку сгенерить или сообщение вывести ?

    6. если напрямик вызвать в браузере postincludes.php и etc ? что увидим

    7. preincludes.php:
    header('Content-Type: text/html; charset='.CFG::$page_codepage);
    а если я хочу скриптом сгенерить картинку, текст.. да все что угодно кроме html. зачем так связывать руки?

    8. ThrowOnTrue() & ThrowOnFalse(). хватило бы и одной. т.е. вместо
    ThrowOnFalse(file_exists($tag['filename']), 'file not found at ' . $tag['filename']);
    -
    ThrowOnTrue(!file_exists($tag['filename']), 'file not found at ' . $tag['filename']);


    эти вопросы появились сразу при просмотре кода. я пока его так и не запускал) ибо ну нет у меня пхп 5.4. а ставить ради одного скрипта лениво. тем более что я считаю что 5.4 там как собаке левая нога. все тоже самое можно сделать на 5.2 даже
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если вы хотите, вы можете обрабатывать всех юзеров и урлы вида /users/15/delete в файле /pages/users.php.
    Для этого надо увеличить значение CFG::$route_to_parent на нужное число шагов.

    В текущей реализации эквивалентны адреса со слешем на конце и без. Можно и это отключить установив значение в ноль.

    Добавлено спустя 1 минуту 11 секунд:
    не вижу смысла. Данный инит не зависит от других классов. Подключил - можешь работать.

    Добавлено спустя 33 секунды:
    Наследников никогда не будет. Никогда. Подробнее можем обсудить в соседней теме.

    Добавлено спустя 5 минут 18 секунд:
    А какой смысл их называть по-разному? Использоваться может только один. И даже не на один вызов, а на все вызовы. Смена способа кеширования требует дополнительных действий вовне.
    В одном нужен, в другом нет. Не понимаю, что вас пугает.

    Добавлено спустя 49 секунд:
    Да, надо прикрутить лог. Считаю нехоро вываливать такое наружу, а до лога не дошли руки еще.

    Добавлено спустя 1 минуту 40 секунд:
    Без понятния. Данный вопрос решается в конфигурации сервера запретом дёргать все пхп подряд и роутингом запросов на index.php. Если надо обращаться к адресу .php то можно назвать файл страницы .php.php или отвести специальную директорию на сервере, где будет разрешен вызов файлов напрямую.

    Добавлено спустя 1 минуту 51 секунду:
    Странный вопрос. В любом месте в любое время можно переопределить этот заголовок любое число раз точно таким же образом. Учитывая что 99.9% запросов именно текстовые, считаю целесообразным заранее объявлять тип содержимого как текст, а переназначать при нужде.

    Добавлено спустя 55 секунд:
    Еще третья есть. Не вижу смысла обсуждать это. Они удобные, и читаются легко.

    Добавлено спустя 48 секунд:
    а это как это "лениво"? это требует каких-то сложных манипуляций?
     
  8. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    нет. просто зачем мне чтото делать если мои скрипты и так работают. и на 5.2 и выше. да, там много вкусного, но мне это пока ненужно.
    чем мои скрипты станут лучше если я начну заменять array() на [] ? да ничем. вот когда несмогу чтото сделать средствами 5.2 но будет очень нужно - тогда повышу требования версии выше.
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    просто это делается в два клика мышкой или в одну команду в консоли. я не агитирую. просто мне понравился новый синтаксис массивов и трейты. Я на них крепко подсел и не вижу смысла не обновить пхп. По остальным вопросам можем поговорить подробнее.
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    почему бы всякие postincludes.php... не перенести сразу в безопасное место? зачем вообще светить их в паблике? инклюдить их можно хоть откуда
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Согласен. Отличная идея. Но мне придётся вообще все файлы перетащить же! :( Думаешь это Ок?
     
  12. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    решай сам. например у себя, я делаю один каталог напр. protected и там уже все внутренности которые ненужно светить.
    в идеале конечно я её держу всегда выше чем htdocs.
    вообще советую разделить еще по функционалу - то что относится к ядру(системе, фреймворку) и то что относится к конкретному сайту.
    так будет легче ориентироваться. и повторно использовать ядро в других сайтах.
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну мне же придётся перенести вообще все файлы. не проще ли закрыть их в конфиге?
    к тому же я уже сто лет не видел никаких htdocs. я живу в браке с nginx.
     
  14. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    я просто указал на то что файлы системные и конкретного сайта у тебя вперемешку "размазаны' по каталогам. хочешь порядка сгруппируй их. хочешь безопасности выноси их выше или просто запри в каталоге. дело хозяйское
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не понял, что значит "системные и конкретного сайта"?
     
  16. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    представь что ты сделал два сайта на основе своей pincms.

    те файлы которые будут полностью идентичны у этих сайтов - это скорее всего системные(pin.php, pincms.php )

    а те файлы которые разные для каждого сайта, это файлы конкретного приложения(конфиг, шаблоны, конкретные страницы, снипеты, темы, js и css, каталоги с кешем...)
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    их всех надо прятать, т.к. в отрыве от системы они не функциональны. Т.е. прятать надо всё кроме картинок, цсс и яваскриптов. Я вижу проще всего сделать это через конфиг веб-сервера. Я правильно вижу?
     
  18. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    в идеале конечно надо прятать все
     
  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    можно. но т.к. это решается в конфиге веб сервера по принципу закрыть всё кроме /images, /js и /css, зачем лишние телодвижения? Я не против принять вашу точку зрения, просто я не вижу разницы - один хрен придётся в конфиге это закрывать, а то - открывать.
     
  20. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    я и не спорю. я просто указал на это. делай как тебе проще. но не забывай что ты хочешь pincms продвигать и популяризировать. а значит она из коробки должна быть максимально защищена, даже если будет в руках не очень компетентного программера.
    тоесть ориентироваться нужно не на себя, а на самый худший вариант развития событий на хостинге.
     
  21. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Не, я не собираюсь ориентироваться на публику, которая не читает доку перед использованием. =) Это простенький инструмент для тех, кто четко понимает, чего лишается, отказываясь от CMS и CMF и понимает зачем ему это нужно и чем грозит.

    Я устал от защиты от дурака. Я устал от автоматов, которые делают херню. Вот результат.

    Добавлено спустя 2 минуты 42 секунды:
    я приложу конфиг нгинкса с правильными настройками, как вернусь в Москву.

    Мысль я понял. Пока не вижу иного решения, кроме как конфигурить сервак. Но впредь буду думать всегда о том, чтобы всё прятать-прятать даже если не надо. Правда я увлекался этим ранее, и даже расставлял выключалки во все файлы, если они вызваны вне контекста index.php. Но я пришел к выводу, что это ребячество, и достигается контролем и настройкой веб-сервера, а не защитой от дурака. Этот инструмент я разрабатывал не для дураков. =)
     
  22. pistol

    pistol Новичок

    С нами с:
    24 ноя 2013
    Сообщения:
    76
    Симпатии:
    0
    [from]

    Хорошо. Начни с Page:put. Каждая функция должна отвечать на вопрос "что сделать" и "что именно сделать". Далее можно подумать о наследовании стиля нейминга от соседних функций. Типа, getThat, get_that или GetThat.
     
  23. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не понял, что не так.
     
  24. pistol

    pistol Новичок

    С нами с:
    24 ноя 2013
    Сообщения:
    76
    Симпатии:
    0
    Вот и я, как пользователь системы, не понимаю, что put? И почему getStaticPath и GetMinified. И что StaticCSS?

    ПС: http://clip2net.com/s/6EFbEg
     
  25. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чувак, а ты инглиш как?

    Добавлено спустя 2 минуты 52 секунды:
    ты мне картинку с моими методами можешь не постить, я их знаю =) честно

    Добавлено спустя 4 минуты 19 секунд:
    чувак, ты пойми. Я мысли не читаю. Что ты хочешь сказать?