anonymous@RULINUX.NET~# Last login: 2024-11-22 23:11:14
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Касательно переписывания движка на симфони.

Чтож пожалуй начнем эксперимент по переписыванию движка. Оговорюсь сразу это эксперимент и в случае чего может затянуться или в крайнем случае вообще быть признанным неудавшимся. Специально для этих целей я создал репозиторий rulinux-symfony и домен третьего уровня http://symfony.rulinux.net Примерно недельку я буду читать маны по симфонии, затем потихоньку начну делать. Архитектура БД останется примерно такой-же с небольшими косметическими изменениями для новых фич типа отдельных табличек для истории правок сообщения или выноса нескольких колонок из таблицы тредов в доп. таблицы завязанные на разделы. Классы base будут заменены на реализацию из симфонии. Шаблоны будут общими и уникальными для темы. Поиск шаблона производить сперва в каталоге темы, а затем если не найдено, то подключать стандартный. Про реализацию логики пока ничего не могу сказать, станет ясно после прочтения манов. Ах-да еще одним нововведением будет использование фронт-контроллера. В остальном будет все тот-же рулин. wisywig-редактор текста, блекджек и шлюхи будут добавлены позже.

Tux-oid(*) (2012-05-03 22:16:19)
Отредактировано Tux-oid по причине "не указана"
Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120422 Firefox/12.0 SeaMonkey/2.9

[Ответить на это сообщение]
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Откуда бы дёрнуть актуальную по структуре тестовую базу?

anonymous(*)(2012-05-03 22:54:04)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Одобрям! Если что кидай сюда вопросы - помогу разобраться.

Ax-Xa-Xa(*)(2012-05-03 23:45:42)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Одобрям! Если что кидай сюда вопросы - помогу разобраться.
Скажи самый правильный (с точки зрения симфони и красивого кода) способ выбора разных шаблонов для разных тем, с фоллбэком на дефолтный, если шаблон отсутствует. Т.е. есть у нас news.tpl (образно), сначала поискать его в themes/some_theme/news.tpl, а затем, если его нет, в themes/default/news.tpl. Аналогично и со статикой вроде css.

SystemV(*)(2012-05-04 00:16:18)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

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

Ax-Xa-Xa(*)(2012-05-04 01:16:03)
Отредактировано Ax-Xa-Xa по причине "не указана"
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>думаю эта фишка там тоже сработает.
Там надо if-ы в шаблоне ставить, це некрасиво и многословно. А ещё надо в сессию лазить, так как у анонимусов только там тема и лежит.

В общем, решил я попробовать написать twig extension для упрощения данного, так как кастомный лоадер для него как-то неинтересно делать.

Так от них документации не допросишься, еле нашел, как получить Twig_Engine в самом экстеншене.

Вот такое вышло:


<?php

namespace Rulinux\EngineBundle\Twig;

use Twig_Extension;
use Twig_Function_Method;

class ThemeExtension extends Twig_Extension
{

    public function __construct($container)
    {
        $this->container = $container;
    }

    public function getFunctions()
    {
        return array(
            'current_theme' => new Twig_Function_Method($this, 'currentTheme'),
            );
    }

    public function currentTheme($tplName)
    {
        /* Get theme from session */
        $theme = $this->container->get('request')->getSession()->get('theme');
        if (!$theme)
            return $tplName;
        /* Create name for template from theme directory */
        $splitPoint = strrpos($tplName, ':') + 1;
        $prefix = substr($tplName, 0, $splitPoint);
        $suffix = 'themes/'.$theme.'/'.substr($tplName, $splitPoint);
        $tplThemeName = $prefix.$suffix;
        if ($this->container->get('templating')->exists($tplThemeName))
            return $tplThemeName;
        return $tplName;
    }

    public function getName()
    {
        return 'theme_extension';
    }
}
 


В .../services.yml:


#....

services:
    rulinux_engine.twig.theme_extension:
        class: Rulinux\EngineBundle\Twig\ThemeExtension
        arguments: [@service_container]
        tags:
            - { name: twig.extension }
 


И в шаблоне:


{% extends current_theme("RulinuxEngineBundle::base.html.twig") %}

{% block center %}
Hello {{ name }}
{% endblock %}

 


Итого мы получаем, что current_theme("RulinuxEngineBundle::base.html.twig") возвращает либо "RulinuxEngineBundle::themes/user_theme/base.html.twig", если файл существует, либо дефолтный "RulinuxEngineBundle::base.html.twig". По идее с файлами вида BundleName:ControllerName:Filename сработает так же. Вот теперь смотрю на это, и думаю, может пригодится в дальнейшем.

Твиг вижу первый раз, симфони2 тоже, я в ту сторону иду?:)

SystemV(*)(2012-05-04 03:43:11)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Твиг вижу первый раз, симфони2 тоже

А ты когда silex рекомендовал - какой движок темплейтов имел в?

anonymous(*)(2012-05-04 04:01:00)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> я в ту сторону иду?

Подозреваю что не очень в ту:

A template can be customized in two different ways:

Inheritance: A template extends a parent template and overrides some blocks;
Replacement: If you use the filesystem loader, Twig loads the first template it finds in a list of configured directories; a template found in a directory replaces another one from a directory further in the list.
(c) http://twig.sensiolabs.org/doc/recipes.html

Я так понимаю, что если предполагается частично перекрывать дефолтные темплейты, то это всё будет работать само, просто надо путь к дефолтным темплейтам подложить в конец списка директорий (см. "Replacement")

anonymous(*)(2012-05-04 04:06:46)
Отредактировано anonymous по причине "не указана"
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>А ты когда silex рекомендовал - какой движок темплейтов имел в?
Это я выразился плохо, я внутренности твига на таком уровне вижу впервые. Ночь уже, спать пора.

Сам синтаксис там скопирован с jinja2, который, в свою очередь, имеет довольно много общего с шаблонизатором django. А с обоими указанными языками шаблонов я много работал.

SystemV(*)(2012-05-04 04:09:37)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Replacement: If you use the filesystem loader, Twig loads the first template it finds in a list of configured directories;
Там немного не твиговский лоадер, а самодельный от симфони. У них и пути в специальном формате, Bundle:Controller:Filename, а не как у дефолтного твига. Я решил так глубоко не лезть.

SystemV(*)(2012-05-04 04:15:50)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Ночь уже, спать пора.

Да уж.. Тюксоед, падло, всех возбудил а сам свалил. Небось дрыхнет уже, а мы тут мануалы по этой херне роем..

anonymous(*)(2012-05-04 04:16:54)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Всё равно должно делаться как-то безгеморно, ситуация же стандартная

anonymous(*)(2012-05-04 04:18:28)
Отредактировано anonymous по причине "не указана"
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Всё равно должно делаться как-то безгшеморно, ситуация же стандартная
По идее можно и так, я тут обнаружил:

{% extends ["RulinuxEngineBundle::themes/" ~ theme ~ "/base.html.twig", "RulinuxEngineBundle::base.html.twig"] %}, где theme надо достать из сессии (сходу не скажу как, но должно быть просто). Тоже вариант, но такое придётся писать в заголовке каждого шаблона. Даже не знаю, нормально ли повторять одно и то же в куче файлов. По идее моя штука делает то же самое.

Впрочем, возможно данное решение и лучше, чем экстеншен.

SystemV(*)(2012-05-04 04:22:52)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Это всё равно Inheritance. А должен быть Replacement. Иди спать - завтра найдёшь, заодно и нам расскажешь.

anonymous(*)(2012-05-04 04:30:06)
Отредактировано anonymous по причине "не указана"
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Немного усложним ситуацию. Поиск шаблона нужен еще и в каталоге модуля. Т.е. сперва ищем шаблон в каталоге с темой, затем в каталоге с модулем(разделы сайта сделать модулями движка) и уж потом в дефолтном каталоге.

Tux-oid(*)(2012-05-04 07:57:58)

Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120312 Firefox/11.0 SeaMonkey/2.8
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Да уж.. Тюксоед, падло, всех возбудил а сам свалил.

Все вопросы к Ха-Ха. Это он надоумил переписывать на симфонии. Так-что со своим возбуждением обращайся к нему.

Небось дрыхнет уже, а мы тут мануалы по этой херне роем.

Естественно. После хорошей тренировки нужен хороший сон. Иначе мышцы восстанавливаться не будут. Так-что в дни тренировок спать не позже 22:00 накрайняк в 22:30

Tux-oid(*)(2012-05-04 08:16:07)

Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120312 Firefox/11.0 SeaMonkey/2.8
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Ок. Тогда почаще проверяй раздел Web-development.

Tux-oid(*)(2012-05-04 08:17:10)

Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120312 Firefox/11.0 SeaMonkey/2.8
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Твиг вижу первый раз, симфони2 тоже, я в ту сторону иду?:)
Да всё правильно. У TWig хорошая наследственность, все эти фишки с его расширением давно на jinja2 в Питоне отработаны, а DI позволяет его красиво с другими компонентами объединять.

Только по моему без расширение Твига это можно сделать, хотя с другой стороны сделал расширение и юзай во всех проектах не парясь.)))

Ax-Xa-Xa(*)(2012-05-04 08:52:13)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Поиск шаблона нужен еще и в каталоге модуля. Т.е. сперва ищем шаблон в каталоге с темой, затем в каталоге с модулем(разделы сайта сделать модулями движка) и уж потом в дефолтном каталоге.

В модуле - в последнюю очередь. Потому что модуль совсем ничего не знает об оформлении сайта.

anonymous(*)(2012-05-04 11:17:15)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

не суть. смысл в усложнении задачи

Tux-oid(*)(2012-05-04 12:12:36)

Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120312 Firefox/11.0 SeaMonkey/2.8
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

для модулей (кстати, в Симфони следует называть их "бандлами" - это не модули, это намного лучше (тм) ) всё предусмотрено искаропки:

По умолчанию темплейты могут находиться в двух разных местах:

  •  app/Resources/views/: Шаблоны уровня приложения и шаблоны, которые могут перекрывать шаблоны бандлов (см. Overriding Bundle Templates)
  •  path/to/bundle/Resources/views/: каждый бандл держит свои темплейты в своей директории Resources/views и её поддиректориях.
...

Overriding Bundle Templates
...
Для перекрытия темплейта бандла AcmeBlogBundle просто скопируйте src/Acme/BlogBundle/Resources/views/Blog/index.html.twig в app/Resources/AcmeBlogBundle/views/Blog/ (этой директории ещё нет и вам придётся её создать), теперь вы можете извращаться над дизайном темплейта до наступления усрачки.

Темплейты, используемые ядром - это просто темплейты и могут быть перекрыты таким же образом.

(с) http://symfony.com/doc/current/book/templating.html

---------------------------------------------------------------------

Доп.ресурсы:

Бандл для поддержки тем: http://knpbundles.com/liip/LiipThemeBundle - косвенное свидетельство отсутствия поддержки тем в ядре?

anonymous(*)(2012-05-04 13:09:00)
Отредактировано anonymous по причине "не указана"
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

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

SystemV(*)(2012-05-04 13:29:12)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

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

anonymous(*)(2012-05-04 13:40:25)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Не надо нам такого. Зачем вкладывать авторизацию в свой бандл, например, если для этого есть готовое решение? И есть готовый бандл для опенИД.
Не, я немного не про то. Я про ту часть, где есть шаблоны и разделы. Мне кажется, что все разделы (новости, статьи, форум, галерея) можно реализовать внутри одного модуля, причем сделать так, чтобы их число можно было менять в дальнейшем без правки кода. Как минимум, у меня в голове есть определённая идея, надо её попробовать будет, может ещё не получится. Если сработает, то тогда разница между разделами будет только в шаблонах.

По мне так смысл бандла в том, чтобы он был относительно независимым от других. Иначе получается, что, например, два бандла надо обязательно ставить вместе, и непонятно, где тут модульность и зачем огород городить. В случае же со всякими разметками, опенИД и прочим бандлы нужны, т.к. тут модульность вполне есть.

SystemV(*)(2012-05-04 13:47:53)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> новости, статьи, форум, галерея
Не мешай в кучку понятия разного уровня

По своей сути новость, статья, пост на форуме, пост в галерее - это объекты одного типа: страничка с форматированным текстом и включением ресурсов - картинок например.
А раздел "статьи", тред, форум, галерея - это контейнеры этих страничек (за исключением форума, который работает контейнером тредов) со специфическими свойствами, правилами авторизации и т.п.

anonymous(*)(2012-05-04 13:58:10)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

В данный момент вообще есть всего три типа - треды (новость, статья, стартовый пост в галерее, стартовый пост на форуме), комментарии, причем комментарий привязан к треду для первого поста, и разделы, одной кучей. То есть тред не несёт в себе текст, автора и другую информацию - всё в привязанном комментарии. Мне кажется, что примерно то же самое и надо делать.

>А раздел "статьи", тред, форум, галерея - это контейнеры этих страничек
Есть ещё подразделы. Мне кажется, что все контейнеры можно согнать в один класс, затем сделать класс для тредов и класс для сообщений. Контейнеры, назовём их категории, можно организовать древовидно (как сейчас оно и есть, на самом деле).

Например

- Новости
-- Документация
-- Линукс в России
-- ...
- Галерея
-- Скриншоты
-- Рабочие места
-- ...
- Форум
-- General
-- Talks
- Статьи
-- General
-- ...

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

Кстати, тред как общий объект для всего делает лёгким ещё одну вещь - перенос из новостей в форум и обратно.

И насчёт бандлов - по мне так сообщения, треды и разделы - один бандл, т.к. отдельно они существовать вообще не могут, так как тесно связаны. Вот темы, наверное, можно вынести, тут надо думать.

SystemV(*)(2012-05-04 14:16:04)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>> новости, статьи, форум, галерея
> Не мешай в кучку понятия разного уровня


Прекрасно всё укладывается в одну кучу (дерево). Вполне можно сделать так (модель в формате SQLAlchemy). А разделы форума удрать нах, Дженерал, Талк, Дев и т.п переделать в разделы сайта, а остальные типо BSD, Hardvare в Дженерал с пометкой тэгом. Либо сделать Класс "Форум" у которого будет еще один подуровень.

python
class BlogEntity(object):
    """Базовый класс "Сущность"
    """

    __tablename__ = 'blog_entity'
    id = Column(Integer, primary_key=True, autoincrement=True)
    title = Column(String, nullable=False)
    content = Column(String, nullable=True)
    parent_id = Column(Integer, ForeignKey('blog_entity.id'), nullable=True)
    parent = relationship("Parent", backref=backref('children', order_by=id))

class BlogCharter(BlogEntity):
    """Класс объектов "Раздел"
   
    Класс для объектов определяющих разделы сайта.
    """

    name = aliased(title)
    description = aliased(content)
    topics = aliased(children)
   
    def NewPost(self, title, content):
        """Создание нового поста в разделе"""
        self.topics.append(BlogPost(title, content))
        self.topics.save()

   
class BlogPost(BlogEntity):
    """Класс объектов "Пост"
   
    Класс для объектов определяющих посты в разделы сайта.
    """

    charter = aliased(parent)
    comments = aliased(children)
   

class BlogComment(BlogEntity):
    """Класс объектов "Коментарий"
   
    Класс для объектов определяющих коментарии к постам.
    """

    post = aliased(parent)
    comments = aliased(children)
 


Ax-Xa-Xa(*)(2012-05-04 14:52:05)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Забыл про доп. поля.. Ну можно попробовать так: объявить абстрактный базовый тип - страница с разметкой. Если страница нуждается в доп. атрибутах - можно от неё унаследовать дочерний тип, наверное. Как на уровне логики, так и представления (темплейты же наследуются, хотя я ещё не понял как это выглядит). Разные бандлы для разных типов. Каждый со своим стораджем.

Есть ещё одна шняга, о которой, как мне кажется, разработчики фрейворков для пых не думают никогда. Для них класс - это не какбэ тип объекта, а в чём-то уже и его инстанс. Я имею в виду юзкейс когда, например, на уровне фреймворка мы определяем: таблицы для этого приложения (читай хоста) будут иметь префикс takoyto_ . А модуль, назовём его для простоты огромнаяБазаНекихВыборок, на уровне свой реализации в качестве имени таблицы для хранения конкатенирует системный префикс с неким именем таблицы. А когда оказывается что выборки мы хотим получать из разных мест и хранить их в разных таблицах, а то и в разных БД, - начинаются выкрутасы.

По иерархиям сложнее чем кажется. Наверное таксономию нужно отдельно делать (вроде есть готовый бандл). Проблема в классификации информации, например в статьях (хотя почему бы и не в тематических разделах на форуме) - ведь одна и та же страница может быть классифицирована по разному, например:
С++ -> библитеки -> Графические -> ImageMagick-c++
Св.Софт -> Графическиий -> ImageMagick -> библиотеки -> ImageMagick-c++

anonymous(*)(2012-05-04 15:17:17)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Прекрасно всё укладывается в одну кучу (дерево).
Вот только твой пример не учитвает разное поведение объектов класса "раздел" (ну или постов в данном разделе, без разницы). Даже не знаю, может хранить информацию о "типе" раздела в БД, тогда уж? А то иначе всё скатывается в if section.id == 1...

SystemV(*)(2012-05-04 16:06:14)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Каждый со своим стораджем.
Это ты о чём? Разные таблицы для разных типов (статьи/новости/галереи)?

Вообще можно взять и вынести все дополнительные свойства разделов в отдельную таблицу, по принципу EAV (свойство-значение). Т.е. основная таблица содержит название, автора и прочее, а дополнительная - всякую муть вроле линков на новость и картинок в галерее. В таком случае, например, можно будет, в дальнейшем, не создавать новые таблицы для новых типов, и не делать ALTER TABLE и держать пустые колонки. Заодно можно будет легко добавить N ссылок на новость. Или N скриншотов. Но усложняется логика работы с этим делом, да и запросы тоже.

>ведь одна и та же страница может быть классифицирована по разному, например:
Ты предлагаешь что-то вроде подхода вики, когда всё построено на "тэгах", и к странице можно попасть разными путями. Оно, конечно, хорошо, но иногда напоминает помойку, особенно если объект нельзя чётко отнести к какой-либо категории.И вообще получается уже не текущий рулинукс, а совсем другой проект.

Я бы не стал так далеко уходить, оставив жесткую структуру категории-треды-сообщения. А предлагаемую функциональность можно накрутить с помощью тэгов, хотя это будет не совсем то. Что-то вроде компромиссного решения.

SystemV(*)(2012-05-04 16:13:38)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

Ну так оно и сейчас хранится в БД. В табличке sections. Просто добавить в нее путь к классу или шаблону, в зависимости от реализации и все. Че мудрить-то?

Tux-oid(*)(2012-05-04 16:15:56)

Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20120312 Firefox/11.0 SeaMonkey/2.8
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Ну так оно и сейчас хранится в БД. В табличке sections. Просто добавить в нее путь к классу или шаблону, в зависимости от реализации и все. Че мудрить-то?
Да, в общем-то, и незачем что-то изобретать. Но вдруг есть какие-нибудь другие способы решения данного вопроса, раз уж есть возможность обсудить.

SystemV(*)(2012-05-04 16:18:54)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Это ты о чём? Разные таблицы для разных типов (статьи/новости/галереи)?

Нет, про разные экземпляры объектов одного и того же класса. Вот я выше ссылался на статью из симфониной доки, которая пестрит идентификаторами вида: src/Acme/HelloBundle/Controller/HelloController.php

Что такое "HelloBundle/Controller" в том айдишнике? Это имя типа, а не конкретного инстанса объекта этого типа. И обращаться ты к нему будешь в виде http://localhost/Контроллер/метод/параметры_метода - потому что у тебя маппинг адресует контроллер вообще, а не один из экземпляров контроллера. Поэтому все блоги на сайте будут иметь одну и ту же конфигурацию, либо нести кучу ненужной логики для "гибкости". Ненужной просто потому, что было бы достаточно создать другой экземпляр класса с другими свойствами.

Сейчас нашёл - вроде в Симфоне есть решение в виде сервисов. Сервис там выступает как именованный экземпляр некоего контроллера, которому параметры задаются в конфиге.

anonymous(*)(2012-05-04 16:59:47)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Даже не знаю, может хранить информацию о "типе" раздела в БД, тогда уж?
Естественно, в той же алхимии делается спец поле если одна таблица содержит объекты разных классов, я думал это очевидно.

Ax-Xa-Xa(*)(2012-05-04 17:03:52)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Ты предлагаешь что-то вроде подхода вики, когда всё построено на "тэгах", и к странице можно попасть разными путями.

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

> Оно, конечно, хорошо, но иногда напоминает помойку,

Всё имеет свои разумные пределы применения. Теги в этом плане только хуже.

> особенно если объект нельзя чётко отнести к какой-либо категории.
Можно, зависит от размеров дерева: http://www.oid-info.com/cgi-bin/display?tree=1.3.6.1.4.1.35751

> Ты предлагаешь что-то вроде подхода вики, когда всё построено на "тэгах", и к странице можно попасть разными путями.

Типа того, только не на тегах, а на иерархиях. Потому то иерархия помогает легко найти соседние сущности. Ты обычным поиском или из гугла или локальным выпал на страницу по своей проблеме, ознакомился и.. и что? Надо посмотреть нет ли по соседству ещё более годного материала связанного с твоей проблемой. Тут иерархическая таксономия оч полезна.

> не текущий рулинукс, а совсем другой проект.

Сниппеты кода, например, вписываются в твоё видение рулинукса?

anonymous(*)(2012-05-04 17:24:41)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Специально для этих целей я создал репозиторий rulinux-symfony


Петя, бля, сделай плиз это на гитхабе. Это же гиторус, это же какой-то пиздец. К тому же там кажется нет пула с клонов, а как мы будем обмениваться нашими замечательными идеями? Бля этоже сурое поделие годное только для халявного гит репозитария. Мы же планируем как бэ коллективную разработку. Не?

//Фч-чф=чф

anonymous(*)(2012-05-04 23:36:52)
Отредактировано anonymous по причине "не указана"
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Петя, бля, сделай плиз это на гитхабе.
На битбакете, и не с гитом!:)

>К тому же там кажется нет пула с клонов, а как мы будем обмениваться нашими замечательными идеями?
Там есть merge requests. Да и, собственно, накой нужны гуёвые извращения, если есть команда git? Тем более, владельцу репозитория бывает полезно подправить что-нибудь перед мерджем, так что веб-интерфейса всё равно не хватает.

>//Фч-чф=чф
лол

SystemV(*)(2012-05-05 00:03:11)
Отредактировано SystemV по причине "не указана"
Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Сниппеты кода, например, вписываются в твоё видение рулинукса?
Видение видением, а вот сюда никто эти сниппеты почти никогда и не постил.

SystemV(*)(2012-05-05 00:05:40)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>> Петя, бля, сделай плиз это на гитхабе.
>На битбакете, и не с гитом!:)
Можно и на битбакете, но лучше на гитхабе. Тоже думал, что битбакт наше фсё, пока не поюзал гитхаб.

>> //Фч-чф=чф
> лол
B yt ujdjhb? kjk)))

Ax-Xa-Xa(*)(2012-05-05 00:08:58)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>Можно и на битбакете, но лучше на гитхабе. Тоже думал, что битбакт наше фсё, пока не поюзал гитхаб.
Имхо единственное, что отличает гитхаб от других - довольно неплохая карта форков, по которой можно понять, какой проект более живой. Не понимаю, чего в нём люди ещё находят.

SystemV(*)(2012-05-05 00:10:45)

Emacs-w3m/1.4.468 w3m/0.5.3
avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Видение видением, а вот сюда никто эти сниппеты почти никогда и не постил.
Во-первых смысла нету, во-вторых куски кода какие-то тут проскакивали и будь у модераторов возможность их классифицировать - может сгодилось бы на что..

anonymous(*)(2012-05-05 01:59:00)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

> Специально для этих целей я создал репозиторий rulinux-symfony и домен третьего уровня http://symfony.rulinux.net
Запилите тогда уже и почту! Отличная днявочка получится. Аноним

anonymous(*)(2012-05-05 12:57:25)

avatar
Скрыть

Re:Касательно переписывания движка на симфони.

>> Специально для этих целей я создал репозиторий rulinux-symfony и домен третьего уровня http://symfony.rulinux.net
> Запилите тогда уже и почту! Отличная днявочка получится. Аноним


Что-то я не понял, а всё же по какому поводу истерика?

Ax-Xa-Xa(*)(2012-05-05 13:05:38)

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
Этот тред читают 10 пользователей:
Анонимных: 10
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!