Hey,
I want to make a single instance of a service to store class attributes between Controllers
Exemple :
In /ThirdParty i create class MyService
PHP Code:
<?php
namespace App\ThirdParty;
class MyService {
protected $idRandom= 0;
public function __construct() {
$this->idRandom =random_int(0, 10000);
}
public function getIdRandom(){
return $this->idRandom;
}
public function setIdRandom($code = ''){
$this->idRandom = $code;
}
}
In Config/Services :
PHP Code:
<?php
namespace Config;
use CodeIgniter\Config\BaseService;
use App\ThirdParty\MyService;
/**
* Services Configuration file.
*
* Services are simply other classes/libraries that the system uses
* to do its job. This is used by CodeIgniter to allow the core of the
* framework to be swapped out easily without affecting the usage within
* the rest of your application.
*
* This file holds any application-specific services, or service overrides
* that you might need. An example has been included with the general
* method format you should use for your service methods. For more examples,
* see the core Services file at system/Config/Services.php.
*/
class Services extends BaseService
{
// public static function example($getShared = true)
// {
// if ($getShared)
// {
// return static::getSharedInstance('example');
// }
//
// return new \CodeIgniter\Example();
// }
public static function myServ($getShared = true){
if ($getShared)
{
return static::getSharedInstance('myServ');
}
return new MyService();
}
}
In Controllers folder :
PHP Code:
<?php
namespace App\Controllers;
use App\Libraries\InstagramLibrary;
class ControllerOne extends BaseController
{
public function __construct() {
$this->myServ = \Config\Services::myServ();
}
public function index()
{
echo $myServ->getIdRandom();
}
And
PHP Code:
<?php
namespace App\Controllers;
use App\Libraries\InstagramLibrary;
class ControllerTwo extends BaseController
{
public function __construct() {
$this->myServ = \Config\Services::myServ();
}
public function index()
{
echo $myServ->getIdRandom();
}
And when i go to the page the idRandom are not the same ... any explication ?