Этот пост не совсем про симфони. На самом деле я опишу, как реализовывал категории и подкатегории для сайта над которым тружусь уже около месяца. Но так как сам сайт создается на symfony, то без нее тут никуда. Задача стояла примерно такая: для удобной навигации и поиска по товарам их нужно отнести к различным категориям и подкатегориям. Количество как первых, так и вторых может быть бесконечно. Единственное ограничение - уровень вложенности, он равен двум. В тех.задании категории и подкатегории были описаны двумя таблицами. Я думаю, что если бы последовал этому - я бы сэкономил пару-тройку часов, однако же, мне пришла в голову идея сделать все в одной таблице. Ведь по сути эти сущности ничем не отличаются, только что подкатегории имеют родительские категории.
-
-

Продолжаю посты про symfony. Сегодня сделаем динамический роутинг. То есть будем добавлять правила роутинга из php, минуя routing.yml. Это нужно, например, если вы хотите делать страницы вида http://site.com/page1, где page1 может быть создана, может быть удалена и прочее. Дело в том, что указать какой-то общий шаблон нельзя, потому что иначе он будет конфликтовать с дефолтным /:module. Что делать? А вот что. Читать дальше... -

Тем, кто изучает симфони известно, что админку часто делают через "generate:app backend". То есть мы создаем приложение внутри нашего проекта. Это прекрасно, но есть одно НО. Чтобы нам зайти в админку требуется писать http://project/backend.php/some-admin-pages. Можно конечно обьяснять заказчикам, что мол понимаете, это другое приложение внутри проекта, другой фронт-контроллер, так надо. Но лучше сделать иначе. Скажу сразу, этот метод взят с официального форума симфони. Но найти его проблематично.
Метод таков:
- Создаем папку "admin" внутри папки "web". Копируем туда .htaccess из той же "web", и заменяем
RewriteRule ^(.*)$ index.php [QSA,L]
на
RewriteRule ^(.*)$ ../backend.php [QSA,L] - Идем в настройки роутинга для backend (app/backend/config/routing.yml) и добавляем папку /admin/ ко всем роутам. Например:
# default rules
homepage:
url: /admin/
param: { module: default, action: index } - Меняем no_script_name на "on" в настройках backend (app/backend/config/settings.yml):
prod:
.settings:
no_script_name: on - Чистим кеш и заходим в папку: http://project/admin/ без проблем.
- Создаем папку "admin" внутри папки "web". Копируем туда .htaccess из той же "web", и заменяем
-
Кратко:
Моя YACI состоит в том, чтобы сделать чекбокс, и положить его в display:none контейнер. После чего onload страницы ставить туда галочку.+ Юзеру ВООБЩЕ ничего не надо делать
+ Нет никаких назойливых картинок (все помнят котят рапиды?)
+ JS выполняется только в браузере. Спамилки и прочие ими не являются.- Не у всех включен JS. (Мой проект широко использует JS, поэтому там без него делать нечего)
- Все равно не спасает от custom спамилки. (от них по-моему ничего не спасает)Идея по-моему здравая, хотя и неуниверсальная.
Tags: captcha
-
Сейчас по долгу службы я работаю над движком для одного сайта. И сделать я его решил с использованием фреймворка, о котором слышал много хорошего. Я говорю о Symfony. Заниматься копипастом хвалебных речей с других сайтов я не буду, сам писать подобное так же не буду. Скажу только, что поначалу мне было трудно разобраться. Я даже хотел все бросить и писать на своей простой MVC системке, но в итоге не бросил. Упорно читал мануалы, стал понимать принципы построения приложения с использованием симфони. Собственно тут я хочу лишь выложить ссылки, которые могут помочь тем, кто будет изучать symfony.
Конечно, ссылка номер 1 это ссылка на главный сайт: http://www.symfony-project.org/
Там большое количество документации, которые стоит осилить. Я пожалел времени, начал рубить сплеча, однако сейчас все равно пришел к тому, что надо читать мануалы и я их читаю. И всем придется, кто хочет понять всю мощь этого фреймворка.Ссылка номер 2 - это ссылка на главный гайд "симфонистов" (). Книга на английском. Методично рассказывается о всех сторонах фреймворка.
Ссылка номер 3 - это практическое руководство, так называемые () и (). Они обе используют в качестве ORM вендора (на есть вариант и для Doctrine). Имейте ввиду, что Askeet был написан для Symfony 1.0, а Jobeet для 1.2. В сети есть некоторых глав на русский.
Это то, что стоит читать в первую очередь. Возможно я найду время перевести некоторые главы на русский, но не обещаю. Удачи вам в изучении.
-
Два таких поста подряд про wordpress получается. Захотел я померять с помощью WP-Tuner сколько же памяти жрут мои плагины. Вышла вот такая картина:
Название Версия Потребление памяти, Мб XRDS-Simple 1.0 0,072 OpenID 3.2 3,628 All in One SEO Pack 1.4.7 0,777 No Self Pings 0.2 0,006 RusToLat 0.3 0,043 WP-phpMyAdmin 2.10.3 0,011 Блокировка запросов на новые версии 1.0 0,004 Google XML Sitemaps 3.1.2 0,061 Akismet 2.2.3 0,345 Yet Another Related Posts Plugin 2.1.6 0,334 WP Super Cache 0.9 0,859 - 0,368 * Subscribe To Comments 2.1.2 0,508 WP-NoRef 0.4 0,053 WP-PageNavi 2.40 0,061 WP-RecentComments 1.7.2 0,255 *В зависимости от того, включен кеш или нет.
-
Сегодня блог мне предложил: "Хей, давай обновимся до 2.7.1 автоматически".
Ого, - подумал я, - раньше был плагин, который работал кое-как, а теперь все автоматически. В общем согласился. Все произошло быстро, чем меня очень порадовало. Однако WP Tuner тут же показал, что расход памяти вырос на 20 мегабайт (!!!). Было 6, стало 26. Причем 19 стало уходить на плагины. Из более-менее ненужных нарушителя выявить не удалось. Остальные трогать не очень хочу. Поэтому если вам ваш блог предлагает обновится до 2.7.1 - подождите лучше пока ситуация не прояснится.UPD: Глянул статистику хостинга. Не знаю как с памятью, а процессорная нагрузка не выросла, слегка даже уменьшилась. Скорее всего дело в WP_Tuner'e. Я свои претензии отменяю =)
-
Я подумал, что было бы неплохо писать некоторые мелкие скриптики, которые я использую в своей работе. На сегодня скрипт, который случайное слово в тексте делает ссылкой. Я не буду расписывать как вам сделать форму и прочие мелочи, это, я думаю, вы и сами сможете. Далее собственно код.
Читать дальше... -
У меня для вас хорошие новости. Во-первых у меня в распоряжении оказались несколько инвайтов на сайт , во-вторых я готов ими с вами поделиться. К сожалению их у меня не так много, поэтому я хочу, чтобы их получили те, кто на самом деле нуждается. Те, кто желает получить инвайт - пиши в комментариях почему инвайт должен достаться именно вам. Таким образом, скорее всего, я отдам один инвайт. Другой инвайт я отдам с помощью викторины.Инвайт на хабрахабр представляет собой вот такой цветной квадратик. Конечно, дело не в самом квадратике, а в его цветах и названии. RGB-код этих цветов и код приглашения, а заодно и название файла. Например 8014d21e248с6452f05524f8.png (нет, это еще не инвайт, а только пример).
Инвайт можно получить прямо сейчас, решив предложенную загадку. Ответы могут содержать только латинские буквы от a до f и цифры. (Если всего в первой части 6 символов, а вопроса три - это НЕ значит, что на каждый вопрос приходится по 2 символа ответа). Так же не стоит писать свои додумки в комментариях, тем самым вы помешаете другим размять свой мозг и развлечься.
Читать дальше... -
Слегка я припозднился с итогами, обычно все их делают в декабре месяце, ну или в крайнем случае в начале января. Но лучше поздно, чем очень поздно. Пост будет длинным, так что запаситесь, пожалуйста, терпением. Постараюсь описать все аспекты своей жизни. Итак, что было год назад...
Читать дальше...









