Это всегда зависит от того, что вам нужно. Если вы уже знакомы с Zend Framework, я бы поддержал предложение Zend_Acl / _Auth, которое было сделано ранее. Но имейте в виду, что каждый фреймворк имеет одинаковый компонент.
Другая вещь, которая приходит на ум, это LiveUser . Мне тоже очень нравится с этим работать.
Я думаю, что вы можете делать практически все, и хотя ваш подход выглядит очень простым, он также ограничен, поскольку (через все эти if ()) вы будете помещать большую часть ACL-логики прямо в середину своего приложение. Что не самая лучшая вещь, чтобы сделать ее простой и расширяемой. ;)