Qué clase de incluir por primera vez?
Lo más probable es que necesite incluir al menos partes, si no todos, del núcleo de seguridad, y luego la implementación de ACL que desee utilizar. Puede ver las dependencias que se enumeran al comienzo de la implementación de ACL y ver qué se extienden. Por ejemplo, la ACL/DBAL
tiene las siguientes dependencias denominadas en la cabecera:
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;
Pero es probable que tenga que comprobar cada uno de los enumerados por sus dependencias, y cargar esos también.
Me gustaría hacer un seguimiento de las dependencias y hacer un seguimiento de lo que necesita qué. Elimina esas clases en una ubicación separada para que solo tengas lo que necesitas, y utiliza algún error de captura para determinar que lo tienes todo.
¿Cuál es el objeto de la instancia?
Su ACL. Si todas las dependencias están determinadas y cargadas, entonces debería poder instanciar el objeto de la clase ACL.
¿Se puede utilizar sin modelos y controladores?
Para ser honesto, no estoy seguro de que el uso de ACL fuera de S2 sea posible sin mucho trabajo, pero si puede obtener una instancia con todo lo que necesita, entonces debería ser capaz de usar el objeto sin un modelo MVC.
Desafortunadamente, por lo que entiendo de S2, es un marco completo de pila, y pretende ser todo o nada. pero si fuera a intentar hacerlo funcionar, esta sería la forma en que lo haría.
Sugeriría la ACL de Zend, porque es de un marco débilmente acoplado o "pegamento", y S2 es una pila completa. – SuperMykEl