Ich bin ein Java-Entwickler (Ich habe oft Spring MVC MVC Web-App in Java zu entwickeln) mit einer sehr litle Kenntnissen in PHP, und ich habe auf einem PHP-Projekt zu arbeiten, die CodeIgniter 2.1.3 verwenden.Wie genau funktioniert diese CodeIgniter-Controller-Klasse?
So habe ich einige Zweifel darüber, wie der Controller in CodeIgniter funktioniert.
1) Im Frühjahr MVC Ich habe eine Controller-Klasse mit einigen annotierten Methode, jede Methode behandeln eine bestimmte HTTP-Anfrage (die Annotation definiert die URL von der Methode behandelt) und den Namen der Ansicht, die angezeigt werden soll.
die offizielle Dokumentation von Lesen CodeIgniter es scheint mir, dass die Logik dieses Rahmens ziemlich anders: https://www.codeigniter.com/userguide3/general/controllers.html#what-is-a-controller
So ist es, dass CodeIgniter in zu verstehen scheint eine Klasse, die eine einzelne URL des Griffs Anwendung mit dem gleichen Namen des Klassennamens. Ist es richtig?
So habe ich diese Klasse:
class garanzieValoreFlex extends CI_Controller {
.....................................................
.....................................................
.....................................................
function __construct() {
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->library(array('form_validation','session'));
}
public function reset() {
$this->session->unset_userdata("datiPreventivo");
$this->load->view('garanziavalore/garanzie_valore_questionario_bootstrap',array());
}
public function index() {
$this->load->model('Direct');
$flagDeroga = "true" ;
$this->session->userdata("flagDeroga");
$data = $this->session->userdata("datiPreventivo");
$this->load->model('GaranzieValoreFlexModel');
$data = $this->session->userdata("datiPreventivo");
$this->load->model('GaranzieValoreFlexModel');
$this->load->view('garanziavalore/index_bootstrap',$data);
}
public function back() {
$this->load->model('Direct');
$flagDeroga = "true" ;
$this->session->userdata("flagDeroga");
$data = $this->session->userdata("datiPreventivo");
$this->load->model('GaranzieValoreFlexModel');
//$this->load->view('garanziavalore/garanzie_valore_questionario_bootstrap',$data);
$this->load->view('garanziavalore/index_tornaIndietro_bootstrap',$data);
}
.....................................................
.....................................................
.....................................................
}
Also, von dem, was ich habe zu verstehen, im Grunde dieses Controller Griff nur die HTTP-Anforderung zu der URL: http://MYURL/garanzieValoreFlex.
Also von dem, was ich verstehe, habe das Verfahren durchgeführt, wenn ich auf die vorherige URL zuzugreifen, ist der Index(), dass durch diese Linie:
$this->load->view('garanziavalore/index_bootstrap',$data);
zeigen die garanziavalore/index_bootstrap.php Seite, ich fand in den Ansichten Verzeichnis meiner prohect (es ist ein Standard, der in die Ansichten Verzeichnis sein?)
ist es meine Argumentation richtig?
Wenn ja ich lade die Ansicht id vorbei auch die $ data Variable, die ich denke, ist das Modell die Daten, die auf der Seite angezeigt werden können, ist diese Variable durch abgerufen wird:
$data = $this->session->userdata("datiPreventivo");
Was genau macht diese Linie?
Der letzte Zweifel ist die andere zurück bezogen() Methode, die ich in der vorherigen Controller gefunden haben: es ist eine Methode der CodeIgniter CI_Controller Klasse oder etwas ganz individuelle vom Entwickler festgelegt, die auf dieser Anwendung arbeiten, bevor mich?