Как узнать поля любой таблицы ?
Либо прописываете их в каждой модели:
protected $fields = array('field1', 'field2', ...);
либо при создании объекта, делаете запрос в базу и формируете список полей:
SHOW COLUMNS FROM table_name
Как сущности преоброзовать свойства класса
Используйте магические методы __get и __set
И почитайте, как другие пытаются разрабатывать
ActiveRecord