Какой класс включить первым?
Скорее всего, вам потребуется включить хотя бы части, если не все ядро безопасности, а затем какую реализацию 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, это полная структура стека, и это должно быть все или ничего. но если бы я собирался попытаться заставить его работать, это было бы так, как я это делал.
Я бы предложил ACL Zend, потому что это от слабосвязанного или «клеящего» фреймворка, а S2 - полный стек. – SuperMykEl