:-)
  • PHP 06.03.2009 10 Comments

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

    Читать дальше...

    Tags: , ,

  • PHP 25.02.2009 1 Comment


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

    Tags: , ,

  • SQL 23.02.2009 2 Comments

    Тем, кто изучает симфони известно, что админку часто делают через "generate:app backend". То есть мы создаем приложение внутри нашего проекта. Это прекрасно, но есть одно НО. Чтобы нам зайти в админку требуется писать http://project/backend.php/some-admin-pages. Можно конечно обьяснять заказчикам, что мол понимаете, это другое приложение внутри проекта, другой фронт-контроллер, так надо. Но лучше сделать иначе. Скажу сразу, этот метод взят с официального форума симфони. Но найти его проблематично.

    Метод таков:

    1. Создаем папку "admin" внутри папки "web". Копируем туда .htaccess из той же "web", и заменяем
      RewriteRule ^(.*)$ index.php [QSA,L]
      на
      RewriteRule ^(.*)$ ../backend.php [QSA,L]
    2. Идем в настройки роутинга для backend (app/backend/config/routing.yml) и добавляем папку /admin/ ко всем роутам. Например:

      # default rules
      homepage:
      url: /admin/
      param: { module: default, action: index }

    3. Меняем no_script_name на "on" в настройках backend (app/backend/config/settings.yml):
      prod:
      .settings:
      no_script_name: on
    4. Чистим кеш и заходим в папку: http://project/admin/ без проблем.

    Tags: , ,

  • Кратко:
    Моя YACI состоит в том, чтобы сделать чекбокс, и положить его в display:none контейнер. После чего onload страницы ставить туда галочку.

    + Юзеру ВООБЩЕ ничего не надо делать
    + Нет никаких назойливых картинок (все помнят котят рапиды?)
    + JS выполняется только в браузере. Спамилки и прочие ими не являются.

    - Не у всех включен JS. (Мой проект широко использует JS, поэтому там без него делать нечего)
    - Все равно не спасает от custom спамилки. (от них по-моему ничего не спасает)

    Идея по-моему здравая, хотя и неуниверсальная.

    Tags:

  • PHP 18.02.2009 2 Comments

    Сейчас по долгу службы я работаю над движком для одного сайта. И сделать я его решил с использованием фреймворка, о котором слышал много хорошего. Я говорю о Symfony. Заниматься копипастом хвалебных речей с других сайтов я не буду, сам писать подобное так же не буду. Скажу только, что поначалу мне было трудно разобраться. Я даже хотел все бросить и писать на своей простой MVC системке, но в итоге не бросил. Упорно читал мануалы, стал понимать принципы построения приложения с использованием симфони. Собственно тут я хочу лишь выложить ссылки, которые могут помочь тем, кто будет изучать symfony.

    Конечно, ссылка номер 1 это ссылка на главный сайт: http://www.symfony-project.org/
    Там большое количество документации, которые стоит осилить. Я пожалел времени, начал рубить сплеча, однако сейчас все равно пришел к тому, что надо читать мануалы и я их читаю. И всем придется, кто хочет понять всю мощь этого фреймворка.

    Ссылка номер 2 - это ссылка на главный гайд "симфонистов" The Book (PDF). Книга на английском. Методично рассказывается о всех сторонах фреймворка.

    Ссылка номер 3 - это практическое руководство, так называемые Askeet (PDF) и Jobeet (PDF). Они обе используют Propel в качестве ORM вендора (на есть вариант и для Doctrine). Имейте ввиду, что Askeet был написан для Symfony 1.0, а Jobeet для 1.2. В сети есть переводы некоторых глав на русский.

    Это то, что стоит читать в первую очередь. Возможно я найду время перевести некоторые главы на русский, но не обещаю. Удачи вам в изучении.

    Tags: , ,

  • блог 11.02.2009 Комментарии отключены

    Два таких поста подряд про 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

    *В зависимости от того, включен кеш или нет.

    Tags: ,

  • блог 11.02.2009 3 Comments

    Сегодня блог мне предложил: "Хей, давай обновимся до 2.7.1 автоматически".
    Ого, - подумал я, - раньше был плагин, который работал кое-как, а теперь все автоматически. В общем согласился. Все произошло быстро, чем меня очень порадовало. Однако WP Tuner тут же показал, что расход памяти вырос на 20 мегабайт (!!!). Было 6, стало 26. Причем 19 стало уходить на плагины. Из более-менее ненужных нарушителя выявить не удалось. Остальные трогать не очень хочу. Поэтому если вам ваш блог предлагает обновится до 2.7.1 - подождите лучше пока ситуация не прояснится.

    UPD: Глянул статистику хостинга. Не знаю как с памятью, а процессорная нагрузка не выросла, слегка даже уменьшилась. Скорее всего дело в WP_Tuner'e. Я свои претензии отменяю =)

    Tags: ,

  • PHP 31.01.2009 4 Comments

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

    Tags: ,

  • inviteУ меня для вас хорошие новости. Во-первых у меня в распоряжении оказались несколько инвайтов на сайт habrahabr.ru, во-вторых я готов ими с вами поделиться. К сожалению их у меня не так много, поэтому я хочу, чтобы их получили те, кто на самом деле нуждается. Те, кто желает получить инвайт - пиши в комментариях почему инвайт должен достаться именно вам. Таким образом, скорее всего, я отдам один инвайт. Другой инвайт я отдам с помощью викторины.

    Инвайт на хабрахабр представляет собой вот такой цветной квадратик. Конечно, дело не в самом квадратике, а в его цветах и названии. RGB-код этих цветов и код приглашения, а заодно и название файла.  Например 8014d21e248с6452f05524f8.png (нет, это еще не инвайт, а только пример).

    Инвайт можно получить прямо сейчас, решив предложенную загадку. Ответы могут содержать только латинские буквы от a до f и цифры. (Если всего в первой части 6 символов, а вопроса три - это НЕ значит, что на каждый вопрос приходится по 2 символа ответа). Так же не стоит писать свои додумки в комментариях, тем самым вы помешаете другим размять свой мозг и развлечься.
    Читать дальше...

    Tags: , ,

  • Слегка я припозднился с итогами, обычно все их делают в декабре месяце, ну или в крайнем случае в начале января. Но лучше поздно, чем очень поздно. Пост будет длинным, так что запаситесь, пожалуйста, терпением. Постараюсь описать все аспекты своей жизни. Итак, что было год назад...
    Читать дальше...

    Tags: , ,