Какова функция __construct () в CodeIgniter?

Я работаю с платформой CodeIgniter, и я новичок в этом. В следующем коде __construct() Функция используется для загрузки модели.

  • Почему я должен использовать __construct()?
  • Когда я должен использовать эту функцию?
  • Что такое parent::__construct()?

Код

function __construct() {
parent::__construct();
$this->load->model('example');
}

2

Решение

Функция construct позволяет вам использовать вещи по всему классу.
Таким образом, вам не нужно загружать модель / язык / настройки в каждом методе.

Скажем, у вас есть модель и язык, который вы хотите загрузить для этого класса, вы можете сделать это в конструкторе. Если у вас есть, например, метод электронной почты в классе и вы используете электронную почту только в этом классе, вам не нужно устанавливать его в конструкторе, но в методе. Таким образом, он не загружается ненужным для всех других методов, которые его не используют.

    class Contact extends CI_Controller {

public function __construct(){
parent::__construct();
$this->load->model('contact_model', 'contact');
}

public function index(){
$data['contact'] = $this->contact->getContact();
$this->load->view('contact', $data);
}

public function send_mail(){
/* Mail configuration - ONLY USED HERE */
$config = array('protocol' => 'mail',
'wordwrap' => FALSE,
'mailtype' => 'html',
'charset'   => 'utf-8',
'crlf'      => "\r\n",
'newline'   => "\r\n",
'send_multipart' => FALSE
);
$this->load->library('email', $config);
$records = $this->contact->getCompany();

$this->email->from( $setmail, $records['CompanyName'] );
$this->email->to( $to );
$this->email->subject( $subject );
$this->email->message( $html );
$this->email->send();
}

}

С php: http://php.net/manual/en/language.oop5.decon.php

PHP 5 позволяет разработчикам объявлять методы конструктора для классов. Классы, у которых есть метод конструктора, вызывают этот метод для каждого вновь созданного объекта, поэтому он подходит для любой инициализации, которая может понадобиться объекту перед его использованием.

1

Другие решения

<?php
class Stud_controller extends CI_Controller {

function __construct() {
parent::__construct();
$this->load->helper('url');
$this->load->database();
}

public function index() {
$query = $this->db->get("stud");
$data['records'] = $query->result();

$this->load->helper('url');
$this->load->view('Stud_view',$data);
}

public function add_student_view() {
$this->load->helper('form');
$this->load->view('Stud_add');
}

public function add_student() {
$this->load->model('Stud_Model');

$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);

$this->Stud_Model->insert($data);

$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}

public function update_student_view() {
$this->load->helper('form');
$roll_no = $this->uri->segment('3');
$query = $this->db->get_where("stud",array("roll_no"=>$roll_no));
$data['records'] = $query->result();
$data['old_roll_no'] = $roll_no;
$this->load->view('Stud_edit',$data);
}

public function update_student(){
$this->load->model('Stud_Model');

$data = array(
'roll_no' => $this->input->post('roll_no'),
'name' => $this->input->post('name')
);

$old_roll_no = $this->input->post('old_roll_no');
$this->Stud_Model->update($data,$old_roll_no);

$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}

public function delete_student() {
$this->load->model('Stud_Model');
$roll_no = $this->uri->segment('3');
$this->Stud_Model->delete($roll_no);

$query = $this->db->get("stud");
$data['records'] = $query->result();
$this->load->view('Stud_view',$data);
}
}
?>
0

По вопросам рекламы [email protected]