It seems that the only way to get entries out of EE is to use template tags or write SQL. I'd rather not write SQL since it's not very portable. I would expect EE to have some DAL so I could do something like:
// load entry of type "Post" with id 15
$this->EE->db->loadEntry('post',15);
Is SQL the only option to access data from PHP?