Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen tp5 und tp3

Der Unterschied zwischen tp5 und tp3

巴扎黑
巴扎黑Original
2016-11-22 14:29:224398Durchsuche

TP5 hat große Änderungen vorgenommen, ist flexibler, weniger aufgebläht und hat einige aufregende Funktionen wie PHP7, Unittest usw. hinzugefügt. Allerdings müssen möglicherweise viele unter TP3 entwickelte Gewohnheiten in TP5 geändert werden.

1 Änderungen im Routing
Route definiert in tp3

Java-Code

'URL_ROUTE_RULES' => array( //Routing-Regeln definieren

'/^password(/)*$/' => '/Admin/Auth/password',

),



Verwenden Sie http so : //xx.com/password und http://xx.com/Admin/Auth/password
können beide auf dieselbe Adresse zugreifen http://xx.com/Admin/Auth/password

Dies ist in tp5 nicht möglich, siehe Route.php Zeile 1251

Java-Code

if (isset(self::$rules['name'][$name]) | |. isset(self::$rules['name'][$name2])) {                                                          )                                                                                                                                                                 >Java-Code

'password' => Passwort', ['method'=>'get']],

Verwendung Der konfigurierte Routing-Zugriff ist normal, es wird jedoch nicht zu admin/auth/password
gesprungen http://xxx/password

Beim Zugriff mit http://xxx/admin/auth/password

Java-Code

wird ein Fehler gemeldet. 0] HttpException in Route.php Zeile 1252


Illegal request: admin/auth/password



               $route = [$module, $action];                                                                                                                                                                                                                                                       äh ($module . '/' . Loader::parseName($controller, 1) . '/' . $action

$name2 = ''; if (empty($ module) ||. isset($bind ) && $module == $bind) {

$name2 = strtolower(Loader::parseName($controller, 1) . '/' . $action); >

}

if (isset(self::$rules['name'][$name]) || isset(self::$rules['name'] [$name2])) { <.>

                                                                                                                                                                                       werfen                                                                                      => $route];

}

2 Such-, Auswahl- und andere Methoden des Modells Was zurückgegeben wird, ist das Modellobjekt, nicht die Daten. Sie können getData() verwenden, um die Originaldaten abzurufen. Es wird empfohlen, Methoden im Modell zu definieren, um db() zum Abfragen von Daten zu verwenden, und die Methode dann dem Controller für Aufrufe zur Verfügung zu stellen.

3 Wenn Sie Model()->save(); verwenden, um Daten in foreach hinzuzufügen, müssen Sie ->isUpdate(false) hinzufügen. Andernfalls wird nur das erste eingefügt und die anderen werden zu Updates. Dies ist wahrscheinlich ein Fehler.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn