12
votes

Composant de sécurité de Symfony 2.0 en tant que autonome

J'essaie d'ajouter Symfony 2.0 ACL à mon application PHP sans cadre. En raison du manque de documentation sur la manière d'utiliser la composante de sécurité en tant que autonome, j'ai totalement confus et que j'ai été bloqué de questions: quelle classe inclure en premier? Quel objet à l'autre? Est-il possible d'être utilisé sans modèles ni contrôleurs?

Toute suggestion sur la façon de démarrer ou de tout bon lien?

merci


1 commentaires

Je suggérerais que le CA acl de Zend, car il provient d'un cadre lâchement couplé ou "colle", et S2 est une pile complète.


3 Réponses :


2
votes

Quelle classe inclure en premier?

Vous devrez probablement inclure au moins des pièces si ce n'est pas tout le noyau de sécurité, puis dans lequel la mise en œuvre de l'ACL que vous souhaitez utiliser. Vous pouvez examiner les dépendances énumérées au début de la mise en œuvre de la LCA et voir ce qu'elles s'étendent. Par exemple, le acl / dbal a les dépendances suivantes appelées dans l'en-tête: xxx

mais vous auriez probablement besoin de vérifier chacun de ceux énumérés pour leurs dépendances et chargent également ceux-ci.

Je ferais de retour dans les dépendances et gardez une trace de ce qui nécessite quoi. Cull ces classes dans un endroit distinct de sorte que vous n'avez que ce dont vous avez besoin et utilisez des erreurs de piégeage pour déterminer que vous avez tout.

quel objet à l'autre? < / p>

votre ACL. Si les dépendances sont toutes déterminées et chargées, vous devriez pouvoir instancier l'objet de la classe ACL.

est-il possible d'être utilisé sans modèles ni contrôleurs?

Pour être honnête, je ne suis pas sûr que l'utilisation d'ACL à l'extérieur de S2 est possible sans beaucoup de travail, mais si vous pouvez l'obtenir instancié avec tout ce dont il a besoin, vous devriez pouvoir utiliser l'objet sans MODE MVC.

Malheureusement, d'après ce que je comprends de S2, c'est un cadre de pile complet et censé être une sorte de chose ou rien de rien. Mais si j'allais essayer de le faire fonctionner, ce serait la façon dont je voudrais y aller.


0 commentaires

12
votes

the SecurityServiceProvider pour SileX pourrait être un bon endroit pour commencer , comme il intègre tous les services essentiels des composants dans un fichier unique. Bien que grand, vous aurez probablement plus facile de digérer que SydMony2's SecurityBundle.

Dans l'intérêt de maintenir votre santé mentale, vous devez envisager d'utiliser un conteneur de service pour organiser tous ces objets. Dans la classe de fournisseur susmentionnée, la classe d'application SILEX est un pimple instance, vous devriez donc être capable de le porter de bouton autonome avec effort modeste. J'ai vu cela parce que l'intégration d'un conteneur de service de pimples dans votre application devrait être moins invasive que d'adopter le cadre SILEX.

Une fois que vous avez les classes de composants de sécurité essentielles travaillant, vous devriez être capable de suivre avec le Documentation ACL et ajoutez des services supplémentaires à votre conteneur au besoin. À ce stade, les sections SecurityBundle-Security peut s'avérer utiles, comme vous pouvez vous concentrer sur les bits pertinents. Gardez à l'esprit qu'il existe plusieurs entrées de recettes de recettes pour ACL dans la documentation.


1 commentaires

Plus 1 pour tout, à l'écart du service [conteneur] localisateur anti-motif.



0
votes

Si vous voulez comprendre comment utiliser Utiliser Symfony2 Composant et comment intégrer cela dans votre projet, lisez Fabien Potencier Blog 'Créez votre propre cadre' Post qui vous aidera certainement à comprendre le cœur du cadre et comment bootstrap Symfony2 composant de votre projet

Il existe également un bon document pour ACL sur le site Web de Symfony


1 commentaires

La série de Fabien couvre un certain nombre de composants sous forme autonome, mais la composante de sécurité est visiblement absente.