Welcome Guest, Not a member yet? Register   Sign In
Unique instance of service
#1

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 $idRandom0;

    public function __construct() {
        $this->idRandom =random_int(010000);
    

    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 ?
Reply


Messages In This Thread
Unique instance of service - by FlorianL - 04-21-2021, 05:37 AM
RE: Unique instance of service - by paliz - 04-21-2021, 10:22 AM
RE: Unique instance of service - by FlorianL - 04-21-2021, 10:36 AM
RE: Unique instance of service - by paliz - 04-21-2021, 02:31 PM
RE: Unique instance of service - by InsiteFX - 04-21-2021, 09:00 PM
RE: Unique instance of service - by craig - 04-22-2021, 02:13 AM
RE: Unique instance of service - by FlorianL - 04-25-2021, 11:05 PM
RE: Unique instance of service - by MGatner - 05-02-2021, 05:43 AM
RE: Unique instance of service - by FlorianL - 05-02-2021, 11:22 PM



Theme © iAndrew 2016 - Forum software by © MyBB