Компонент безопасности от Symfony 2.0 как автономный

Я пытаюсь добавить ACL Symfony 2.0 в мое безплатное приложение PHP. Из-за отсутствия документации о том, как использовать компонент безопасности как автономный, я полностью запутался, и я застрял в вопросах: какой класс включить первым? Какой объект к примеру? Можно ли использовать без моделей и контроллеров?

Любое предложение о том, как начать или какую-либо хорошую ссылку?

благодаря

Solutions Collecting From Web of "Компонент безопасности от Symfony 2.0 как автономный"

SecurityServiceProvider для Silex может быть хорошим местом для начала, поскольку он объединяет все основные сервисы компонентов в одном файле. Хотя большой, вам, вероятно, будет намного легче переварить, чем SecurityBundle от Symfony2.

В интересах поддержания вашего здравомыслия вам следует рассмотреть возможность использования контейнера службы для организации всех этих объектов. В вышеупомянутом классе провайдеров класс Silex Application является экземпляром Pimple , поэтому вы должны с легкостью переносить его автономным Pimple. Я видел это, потому что интеграция контейнера обслуживания Pimple в ваше приложение должна быть менее инвазивной, чем использование платформы Silex.

После того, как у вас есть основные классы компонентов безопасности, вы должны иметь возможность следовать вместе с документацией ACL и добавлять дополнительные службы в свой контейнер по мере необходимости. В этот момент секции ACL-специфичности SecurityBundle могут оказаться полезными, так как вы можете сосредоточиться на соответствующих битах. Имейте в виду, что в документации есть несколько записей поваренной книги для ACL.

Какой класс включать в первую очередь?

Скорее всего, вам потребуется включить хотя бы часть, если не все ядро ​​безопасности, а затем какую-либо реализацию ACL, которую вы хотите использовать. Вы можете посмотреть зависимости, перечисленные в начале реализации ACL, и посмотреть, что они распространяют. Например, ACL/DBAL имеет следующие зависимости, вызываемые в заголовке:

 namespace Symfony\Component\Security\Acl\Dbal; use Doctrine\DBAL\Driver\Connection; use Doctrine\DBAL\Driver\Statement; use Symfony\Component\Security\Acl\Model\AclInterface; use Symfony\Component\Security\Acl\Domain\Acl; use Symfony\Component\Security\Acl\Domain\Entry; use Symfony\Component\Security\Acl\Domain\FieldEntry; use Symfony\Component\Security\Acl\Domain\ObjectIdentity; use Symfony\Component\Security\Acl\Domain\RoleSecurityIdentity; use Symfony\Component\Security\Acl\Domain\UserSecurityIdentity; use Symfony\Component\Security\Acl\Exception\AclNotFoundException; use Symfony\Component\Security\Acl\Exception\NotAllAclsFoundException; use Symfony\Component\Security\Acl\Model\AclCacheInterface; use Symfony\Component\Security\Acl\Model\AclProviderInterface; use Symfony\Component\Security\Acl\Model\ObjectIdentityInterface; use Symfony\Component\Security\Acl\Model\PermissionGrantingStrategyInterface; 

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

Я хотел бы отслеживать зависимости и следить за тем, что нужно. Выбросьте эти классы в отдельное место, чтобы у вас было только то, что вам нужно, и используйте некоторые ловушки ошибок, чтобы определить, что у вас есть все.

Какой объект к примеру?

Ваш ACL. Если зависимости определены и загружены, то вы должны создать экземпляр объекта класса ACL.

Можно ли использовать без моделей и контроллеров?

Честно говоря, я не уверен, что использование ACL вне S2 возможно без большой работы, но если вы можете получить его экземпляр со всем, что ему нужно, то вы должны иметь возможность использовать объект без модели MVC.

К сожалению, из того, что я понимаю в S2, это полная структура стека, и это должно быть все или ничего. но если бы я собирался попытаться заставить его работать, это было бы так, как я это делал.

Если вы хотите понять, как использовать компонент symfony2 и как интегрировать его в свой проект, тогда прочитайте блог Fabien Potencier «Создайте свой собственный фреймворк» , который определенно поможет вам понять суть фреймворка и как загрузочный компонент symfony2 в вашем проект

есть также хороший документ для ACL на веб-сайте symfony