[Solar-talk] Solar::loadInterface()?

Clay Loveless clay at killersoft.com
Tue Sep 12 09:16:52 PDT 2006


On Sep 12, 2006, at 9:05 AM, Antti Holvikari wrote:

> On 9/6/06, Antti Holvikari <anttih at gmail.com> wrote:
>> Hi!
>>
>> ZendFW has it, should Solar have it too? Or is there a reason why  
>> it's
>> not there? Now I have to use require_once to load my interfaces...
>
> Hey you guys at Mashery ;-), what's your opinion on this?

Thanks for reminding me of this thread -- missed it while I was out  
of town.

For what it's worth, this makes sense to me. Half of it is already in  
place with Solar::run(), the rest is here:

public static function loadInterface($interface)
{
     // did we ask for a non-blank interface?
     if (trim($interface) == '') {
         throw Solar::exception(
             'Solar',
             'ERR_LOADINTERFACE_EMPTY',
             'No interface named for loading',
             array('interface' => $interface)
         );
     }

     // pre-empt further searching for the interface
     if (interface_exists($interface, false)) {
         return;
     }

     // convert the interface name to a file path.
     $file = str_replace('_', DIRECTORY_SEPARATOR, $interface) . '.php';

     // include the file and check for failure. we use run() here
     // instead of require() so we can see the exception backtrace.
     $result = Solar::run($file);

     // if the interface was not in the file, we have a problem.
     if (! interface_exists($interface)) {
         throw Solar::exception(
             'Solar',
             'ERR_LOADINTERFACE_EXIST',
             'Interface does not exist in loaded file',
             array('interface' => $interface, 'file' => $file)
         );
     }
}



--
Killersoft.com





More information about the solar-talk mailing list