Если вы хотите проверить, имеет ли пользователь доступ к свойству, это другой уровень, отличный от уровня доступа к данным. Но все же есть фреймворки, в которых вы можете переопределить функцию загрузки по умолчанию и вставить свою логику после / до загрузки.
Самый легкий фреймворк, который я когда-либо работал, это db.php (http://dbphp.net, https://github.com/hazardland/db.php).. Но это рациональный маппер объекта с первым кодом. Вам нужно будет определить классы, чем базы данных \ таблицы будут созданы в в ваши классы.
Посмотрите на метод \ db \ table :: load. Каждый класс имеет свой собственный экземпляр обработчика \ db \ table, расположенный в массиве database :: tables. Вы можете переопределить table :: load или создать отдельные обработчики для таблиц, производных от класса \ db \ table, и поместить их в базу данных :: tables.
Единственная проблема заключается в том, что фреймворк не полностью документирован, но имеет очень легкую интуитивно понятную структуру кода и примеры.
Другой вариант - сделать саму рамку dal, чтобы 1 человек мог полностью функционировать и работать в течение 3-4 месяцев.