Welcome Guest, Not a member yet? Register   Sign In
intController() and __construct()
#1

(This post was last modified: 07-30-2018, 08:17 PM by enlivenapp. Edit Reason: Spelling and make the first line easier to figure out what I'm asking about )

I'd like to make sure I have my head wrapped around the removal no longer need of __contruct() from controllers to construct the parent.


I I've got that 
PHP Code:
public function __construct()
{
 
  parent::__construct();


specifically is no longer needed as intController() takes care of all that.


So, where I'm a bit fuzzy is this:
When I need/want to initialize a controller wide access to a resource, IE: (shortened for brevity),
The "old way"

PHP Code:
<?php namespace App\Controllers;

use 
CodeIgniter\Controller;

class 
MyController extends Controller
{

    
/**
    * The database object
    *
    * @var object
    */
    
protected $db;

    
/**
    * The query builder object
    *
    * @var object
    */
    
protected $builder;

 
       /**
    * The name of the table
    *
    * @var string
    */
    
public $table '';

    
// ------------------------------------------------------------------------

    /**
    * Setup all vars
    *
    * @param array $config
    * @return void
    */
    
public function __construct($config = array())
    {
        
// database connection
        
$this->db = \Config\Database::connect();
        
        
// set the table
        
$this->builder $this->db->table($this->table);
    }

 
       // etc...


Is this still valid to set up a controller-wide available resource?

or should we be using these in each method when we need them and not use __construct() at all?  IE:

PHP Code:
<?php namespace App\Controllers;

use 
CodeIgniter\Controller;

class 
MyController extends Controller
{

    
/**
    * The database object
    *
    * @var object
    */
    
protected $db;

    
/**
    * The query builder object
    *
    * @var object
    */
    
protected $builder;

 
       /**
    * The name of the table
    *
    * @var string
    */
    
public $table '';

    
// ------------------------------------------------------------------------

    
    
public function someMethod($someVar)
    {
        
// database connection
        
$this->db = \Config\Database::connect();
        
        
// set the table
        
$this->builder $this->db->table($this->table);

 
               $q $this->builder->select('someField')->where('someField'$someVar)->getResult();

 
               // do something with $q...
    
}

 
       // etc...


I realize using database and builder is open to 'the fat/skinny controller/model argument', this is just an example to ask my question...
Reply


Messages In This Thread
intController() and __construct() - by enlivenapp - 07-30-2018, 01:26 PM
RE: intController() and __construct() - by kenjis - 05-22-2022, 02:43 AM



Theme © iAndrew 2016 - Forum software by © MyBB