php - How to create a new injectable service in Phalcon -
php - How to create a new injectable service in Phalcon -
i'm trying build basic "json getter" phalcon-based webapp, that:
function getjson($url, $assoc=false) { $curl = curl_init($url); $json = curl_exec($curl); curl_close($curl);  homecoming json_decode($json, $assoc); }    and of course of study create stuff globally available, perchance injectable service. best way that? should implement phalcon\di\injectable? , then, how can include new class , feed di?
thanks!
you extend phalcon\di\injectable don't have to. service can represented class. docs pretty explain how work dependency injection in general , phalcon.
class jsonservice  {     public function getjson($url, $assoc=false)     {         $curl = curl_init($url);         $json = curl_exec($curl);         curl_close($curl);          homecoming json_decode($json, $assoc);     } }  $di = new phalcon\di();  //register "db" service in container $di->setshared('db', function() {      homecoming new connection(array(         "host" => "localhost",         "username" => "root",         "password" => "secret",         "dbname" => "invo"     )); });  //register "filter" service in container $di->setshared('filter', function() {      homecoming new filter(); });  // json service... $di->setshared('jsonservice', function() {      homecoming new jsonservice(); });  // later in app... di::getdefault()->getshared('jsonservice')->getjson(…);  // or if class you're accessing di extends `phalcon\di\injectable` $this->di->getshared('jsonservice')->getjson(…);    just pay  attending get / set vs. getshared / setshared, there services may cause problems if created multiple times on , on   1 time again (not shared), e.g., take lot of resources when instantiated. setting service shared ensures it's created  1 time , instance reused there after.
 php dependency-injection phalcon 
 
Comments
Post a Comment