dean jase
dean jase

Reputation: 1161

zend loading models using eval in helpers

i want to load models from helpers... im using eval to insert the modelname etc.

 public function getMod($mName) {
     // this works but need a dynamic one
$model = $this->users = new Application_Model_Users();  

// so i did this:

         $model = $this->_listsMod = eval ("new Application_Model_$mName();");



        return $model;

and you can call it by: $this->_helper->getmod->getMod('Users')->myuserFunc();

but it doesnt work, its says Fatal error: Call to a member function myuserFunc() on a non-object

Upvotes: 1

Views: 159

Answers (1)

ChrisA
ChrisA

Reputation: 2101

Updated answer:

Have you tried:

    $modelName = 'Application_Model_'.$mName;
    $model = $this->_lists = new $modelName ;

?

You should have a look at the Factory Pattern (which is effectively what you're doing here) eg here and here.

As you probably know, its best to avoid using eval if possible. Also, it seems a bit odd needing to load Models like this - can you tell us why you need to load them like this?

Note: I've updated this answer following comments below, to make it quicker for future readers of the question / answer.

Upvotes: 2

Related Questions