PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (28): « 1 2 [3] 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 406
digi Отправлено: 12 Марта, 2014 - 13:08:44 • Тема: Новая архитектура CMS • Форум: CMS и фреймворки

Ответов: 79
Просмотров: 11194
Понятие "многосайтовость" слишком неоднозначное... например для пользователя - это возможность из некого единого интерфейса управлять несколькими его сайтами...

Программист же может подумать, что для него это будет единый набор исполняемых файлов а также все сайты в единой БД, где в таблицах везде есть поле site_id.
digi Отправлено: 12 Марта, 2014 - 11:24:04 • Тема: Новая архитектура CMS • Форум: CMS и фреймворки

Ответов: 79
Просмотров: 11194
man1 пишет:
мультидоменности и мультисайтовости.


пытался делать когда-то такую штуку... геморой не оправданный т.к. во первых всех ресурсы всех сайтов хранятся в одном месте и могут конфликтовать, а еще пытался в одной БД держать данных от нескольких сайтов - вообще мрак %)) фактически гораздо проще с точки зрения разработки держать каждый сайт отдельно, более того даже вендоры не надо делать общими т.к. нюансов может всплыть много и при "неудачном" обновлении одного проекта, может рухнуть вся система...

хотя в прицнипе некоторое подобие "мультидоменности и мультисайтовости" можно сделать, но только за счет конфигураций системы, а не впаенной в неё хардкора ;)
digi Отправлено: 10 Марта, 2014 - 18:37:13 • Тема: Новая архитектура CMS • Форум: CMS и фреймворки

Ответов: 79
Просмотров: 11194
Кстати да, на счет "архитектур" основанных на шаблонах, есть некоторые идейки ;)) можно будет реализовать, если кому-то понравится ;)

В общем вот наброски:

Как таковых "контроллеров" видимо можно и не делать ;))

Предположим, что вот так будем описывать наш сайт: https://github[dot]com/TDTeam/arfea/[dot][dot][dot]ree/dev/app/site

Это означает, что если пользователь запросил главную страницу http://site[dot]ru/ , значит будет выполнен шаблон: https://github[dot]com/TDTeam/arfea/[dot][dot][dot]/site/index[dot]twig

Допусти пользователь запросил страницу http://site[dot]ru/about/ , тогда будет выполнен шаблон: https://github[dot]com/TDTeam/arfea/[dot][dot][dot]/site/about[dot]twig в котором система автоматически подставит в качестве parent значение index.twig и будет соблюдена цепочка <html><title>

Далее, запрос http://site[dot]ru/about/contacts/ , выполнит шаблон https://github[dot]com/TDTeam/arfea/[dot][dot][dot]ut/contacts[dot]twig , а в качестве родительской уже выставит about.twig

Самое интересное, это работа с данными, например по запросу http://site[dot]ru/news/ , будет выполнен шаблон: https://github[dot]com/TDTeam/arfea/[dot][dot][dot]p/site/news[dot]twig , в котором сам шаблон достанет данные функцией
CODE (text):
скопировать код в буфер обмена
  1. {% set news = model('News') %}
и тутже их отобразит, при этом значение страницы можно будет прозрачно подхватить из параметра

В результате исходные коды проекта могут храниться в сжатом виде в phar формате, а файлы самого сайта будут достаточно лаконичны и просты. Здесь же можно предусмотреть и модульность. Также многое надо уделять работе с консолью т.к. для быстрой разработки надо предусмотреть ряд очень удобных инструментов. Кеширование в таком проекте тоже можно сделать очень продвинутым т.к. он рассчитан на простые сайты, а там можно кешировать буквально все страницы целиком.
digi Отправлено: 10 Марта, 2014 - 17:16:46 • Тема: Новая архитектура CMS • Форум: CMS и фреймворки

Ответов: 79
Просмотров: 11194
На счет универсальности это вполне возможно. Например давно уже с другом разработали вот такую концепцию:

CODE (htmlphp):
скопировать код в буфер обмена
  1. http://smart-core.org/wiki/Алгоритм_(Архив)


Сейчас по большей части уже реализовано... заинтересован пообсуждать на сколько эта шуковина получилась "универсальной" ;)
digi Отправлено: 26 Февраля, 2014 - 17:11:46 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
ну да, документация средненькая... вот есть форум, который на ларавеле пилится

https://github[dot]com/fluxbb/fluxbb/tree/2[dot]0

может быть найдешь для себя инстересные решения.

а мне всё интересно вот это уточнение услышать ;)

digi пишет:
Мелкий пишет:
Я не понимаю, как такая гора кода может работать быстро и прозрачно
какие "параметры" считаются "быстрыми" и "прозрачными" ?
digi Отправлено: 24 Февраля, 2014 - 09:05:15 • Тема: Хочу перебрать все сессии • Форум: Вопросы новичков

Ответов: 4
Просмотров: 199
Можно хранить сессии в БД и отдельно держать поле user_id.
digi Отправлено: 23 Февраля, 2014 - 16:43:06 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
Ch_chov пишет:
Тут бы интересно бенчмарк какой нибудь сделать. Подозреваю, что "очень большая" это всего нескольго процентов.


Вот исходник проекта https://github[dot]com/Smart-Core/CMS-Sandbox , а тут http://do[dot]smart-core[dot]org/ он развернут. Можно развернуть в любом другом окружении и сравнить. И будет самый честный бенчмарк ;) Под "очень большая" в данном случае имеется ввиду "на порядок".
(Добавление)
Ch_chov пишет:
Можно сделать проект в котором будет несколько десятков мегабайт вендорного кода и при этом время генерации страницы будет соизмеримо с простым "Hello word" на "чистой" Симфони.
, почти верно ;) сам контейнер хранится в скомпилированном виде в файле /cache/prod/appProdDebugProjectC ontainer.php и обычно он толстенький, но выполняется очень быстро, но как только контейнер загрузится, он отъедает примерно 0.5-1мб памяти - да это накладной расход, но зато нет головняков откуда, что дальше брать и что от чего зависит, всё уже запаковано в нём и можно вытащить простейшим методом get(); соответственно, если от контейнера требуется какой-то сервис, который ни от каких других не зависит, то соберется он тоже очень быстро Улыбка

А ресурсы в симфони подъедаются на обработчиках событий, например тот же Security сразу же поднимает пачку сервисов и прописывается перед роутингом как файрвол, следовательно все запросы обязательно пройдут через него, а значит будут затрачены ресурсы, но зато такая схема даёт очень удобную и прозрачную систему контроля доступа.
digi Отправлено: 23 Февраля, 2014 - 16:11:20 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
Мелкий пишет:
Я не понимаю, как такая гора кода может работать быстро и прозрачно
какие "параметры" считаются "быстрыми" и "прозрачными" ?
digi Отправлено: 23 Февраля, 2014 - 15:21:09 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
Ch_chov пишет:
Это почему? При одной и тойже конфигурации разницы не должно быть.


На винде апач работает в режиме Thread Safe, а на линухах Non Thread Safe - в детали я не углублялся, но разница в производительности очень большая. Зато на винде в IIS тоже NTS и производительность почти такая же как на линухах, медленнее всего процентов на 30-50 т.е. совсем не в разы. Также можно прикрутить на винде nginx+fpm вроде тоже адекватно по скорости должно быть...

ksedin, а и еще обрати внимание, если будешь использовать симфони, то на большинстве форумов ты будешь "адепт секты" ;)) а если Yii, Kohana, Codeigniter и т.д., то не будешь ;) в причинах думаю разберешься сам ;)
digi Отправлено: 23 Февраля, 2014 - 10:54:37 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
Laravel 4 - хороший проект Улыбка и иметь в своём арсенале и ларавел и симфони - это еще лучше! Улыбка а со временем придёт понимание для каких целей какой инструмент лучше использовать, но знать их нужно достаточно досконально, чтобы оценка была адекватной.
digi Отправлено: 23 Февраля, 2014 - 09:48:45 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
На винде под апачем 200мс - это нормально... на линухе тоже самое будет в 10 раз быстрее т.е. примерно 20мс.

Про "поедание памяти" нужно более предметно поразмыслить... например чтобы написать какой-то функционал "на голом пхп", нужно столько то времени и будет оно потреблять столько то ресурсов, также надо иметь ввиду, что даже ты сам через некоторое время в этот самопис уже не захочешь лезть и уж тем более никого не найдешь для доработки... С другой стороны взвешиваем вычислительные ресурсы проекта на сф2 и оцениваем разницу в деньгах стоимости хостинга, вот эта самая дельта и будет стоимость ковыряния в самописке... Также надо иметь ввиду, что очень часто можно оптимизировать многие вещи, закешировать что-то или вообще завернуть на другой фронт-енд... Хотя действительно, если есть стойкое стремление заставить проект работать на первопопавшемся шареде за 1$ в месяц, то симфони тут вообще не вариант... вопрос больше в том: стоит ли пытаться экономить пару-тройку тысяч рублей в год на хостинге и вкладывать огромное кол-во часов в создание якобы более ресурсо-экономичного проекта...

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

"Максимальное время" загрузки на холодном старте т.е. когда нету опкеша и сам симфони еще не нагенерировал свои кеши, может быть и 5 и 10 секунд - это вполне нормальная картина, здесь после развёртывания проекта или обновления, следует сразу выполнить

CODE (htmlphp):
скопировать код в буфер обмена
  1. app/console cache:warmup --env=prod --no-debug


это создаст сразу все симфонические кеши, далее уже надо будет веб-серверу создать опкод кеши, обычно с 2-3 раз он всё кеширует и проект выходит на нормальную производительность... если на странице нет формочек, то отклик 10-20мс и потребление памяти 2-3 мб - это будет нормально. На vps-ке c 1 гигом оперативки выдержит очень приличную нагрузку, впрочем тут можно будет тем же ad и siege пробежаться и увидеть потенциальные возможности проекта на данном сервере.
digi Отправлено: 23 Февраля, 2014 - 02:03:35 • Тема: выбор • Форум: CMS и фреймворки

Ответов: 26
Просмотров: 4052
Что считать "продуктивностью"? ;) Судя по предыдущим вопросам, ты даже phpStorm c симфоническим плугином не применяешь ;) а эти штуки очень сильно повышают продуктивность разработки.

ksedin пишет:
Ведь грамосткость симфонии будет давать нагрузку на сервер, генерирование страницы более чем треть секунды меня не радует.


Всё правильно Улыбка не надо крутить симфони на апаче под виндой ;) если уж на винде крутится, то лучше использовать IIS и PHP 5.5, а на линухе скорость будет порядка 50мс - а это вполне нормально. Также для продакшина надо не забывать включать кеширование автозагрузчика, доктрины и отключать debug. Еще надо помнить, что акселераторы устроены таким образом, что если сайт долго не запрашивают, то опкод какбы вытесняется их кеша и "холодный" старт будет весьма ресурсоёмкий... а также надо помнить, что у симфони есть свой кеш в котором лежат скомпилированные шаблоны, контнейнер, роутинги и т.д. создание этого кеша на холодном старте тоже много отнимает... В итоге получается, если предприняты элементарные методы оптимизации, то ответ отдаётся достаточно быстро. В качестве примера можешь посмотреть вот на такую цмс-ку https://github[dot]com/Smart-Core/CMS-Sandbox , а вот тут её демка http://do[dot]smart-core[dot]org/ крутится это всё на пхп 5.4, дебиан 7, дигитал океан в Нидерландах, разумеется пхп 5.5 будет и памяти меньше кушать и выполняться быстрее процентов на 20, в ближайшее время разверну где-нибудь 5.5 Улыбка
digi Отправлено: 21 Февраля, 2014 - 10:51:07 • Тема: симфони, формы • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1142
во во Улыбка) вот для этого и надо сначала основы языка изучить Улыбка а в симфони в частности если в экспериментальных целях что-то менял в папке /vendor/ то сносишь её и выполняешь composer install --prefer-dist
digi Отправлено: 21 Февраля, 2014 - 06:52:02 • Тема: симфони, формы • Форум: CMS и фреймворки

Ответов: 4
Просмотров: 1142
ооо Улыбка) вот теперь становится еще понятнее откуда ноги растут Улыбка тебе нужно изучить язык пхп, а особенно его нововведения в 5.3 и 5.4, для 5.3 могу посоветовать книгу http://www[dot]ozon[dot]ru/context/detail/id/5648968/ обязательно 2011 года, в ней не надо читать главу 17 т.к. сейчас используется Git, а также можно особо не углубляться в 15-ую главу т.к. PEAR не всегда использется, а вот Composer нужно обязательно изучить.
digi Отправлено: 19 Февраля, 2014 - 01:44:47 • Тема: Симфони, подключение одного шаблона из другого • Форум: CMS и фреймворки

Ответов: 16
Просмотров: 2843
ты зачем-то пишешь 3 двоеточия... в документации такого нет, читай еще и еще, крути и экспериментируй, пока не поймешь замысел... здесь нужно понимать суть.

если физический путь до шаблона такой:

CODE (htmlphp):
скопировать код в буфер обмена
  1. src/Acme/WarmobiBundle/Resources/views/Default/interface/Down.html.twig


то формат записи к нему будет либо так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. 'AcmeWarmobiBundle:Default/interface:Down.html.twig'


либо так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. '@AcmeWarmobi/Default/interface/Down.html.twig'


настоятельно рекомендую называть шаблоны именем экшена в контроллере и разумеется с маленькой буквы (и разумеется без постфикса 'Action')

Страниц (28): « 1 2 [3] 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB