国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung PHP-Tutorial Kernklassen des PHP-MVC-Frameworks

Kernklassen des PHP-MVC-Frameworks

Nov 08, 2016 am 09:48 AM
rahmen

PHP MVC Framework Core Class
Nun geben wir ein paar Kern-Framework-Beispiele: Erstellen Sie eine Framework.class.php-Datei unter ?framework/core“. Schreiben Sie den folgenden Code:

// Framework/core/Framework.class.php
class Framework {
public static function run() {
echo "run()"
}
Brothers Education www.lampbrother.net hat in dieser Demonstration eine statische Methode run() erstellt. Jetzt testen wir sie über die Eintragsdatei index.php:

require ". Framework/core/Framework.class.php";
Framework::run();
Sie k?nnen index.php in Ihrem Browser besuchen, um das Ergebnis zu sehen. Normalerweise hei?t diese statische Methode run() oder bootstrap(). Bei dieser Methode müssen wir im Wesentlichen drei Dinge tun:

class Framework {
public static function run() {
// echo "run()"; ();
self::autoload();
self::dispatch();
}
private static function init() {
}
private static function autoload() {
}
private statische Funktion Dispatch() {
}
}
Initialisierung
init()-Methode:

// Initialisierung

private static function init() {

// Pfadkonstanten definieren

define("DS", DIRECTORY_SEPARATOR);

define("ROOT", getcwd( ) . DS );

define("APP_PATH", ROOT . 'application' . DS);

define("FRAMEWORK_PATH", ROOT . "framework" . DS); define("PUBLIC_PATH", ROOT . "public" . DS);

define("CONFIG_PATH", APP_PATH . "config" . DS);

define("CONTROLLER_PATH" , APP_PATH . "controllers" . DS);

define("MODEL_PATH", APP_PATH . "models" . DS ); ??>
define("CORE_PATH", FRAMEWORK_PATH . "core" . DS);

define('DB_PATH', FRAMEWORK_PATH . "database" . DS);
define("HELPER_PATH", FRAMEWORK_PATH . "helpers" . DS);

define("UPLOAD_PATH", PUBLIC_PATH . "uploads" . DS); Controller, Aktion, zum Beispiel:

// index.php?p=admin&c=Goods&a=add

define("PLATFORM", isset($_REQUEST['p']) ? $ _REQUEST['p'] : 'home');

define("CONTROLLER", isset($_REQUEST['c']) ? $_REQUEST['c'] : 'Index'); >
define("ACTION", isset($_REQUEST['a']) ? $_REQUEST['a'] : 'index' );

define ("CURR_CONTROLLER_PATH", CONTROLLER_PATH . PLATFORM . DS); Loader.class.php";

erfordern DB_PATH . "Mysql.class.php ";

erfordern CORE_PATH . "Model.class.php";


// Konfigurationsdatei laden
$GLOBALS['config'] = include CONFIG_PATH
// Sitzung starten
session_start(}
Sie k?nnen das sehen Zweck jedes Schritts in den Kommentaren.

Automatisches Laden
Im Projekt m?chten wir das Laden nicht manuell einbinden oder erfordern, wenn wir eine Klasse im Skript verwenden m?chten. Aus diesem Grund verfügt das PHP MVC-Framework über eine automatische Ladefunktion. Wenn Sie beispielsweise in Symfony eine Klasse unter lib laden m?chten, wird diese automatisch importiert. Erstaunlich, oder? Fügen wir nun unserem Framework die Funktion zum automatischen Laden hinzu.

Hier verwenden wir die integrierte Funktion spl_autoload_register in PHP:

// Automatisches Laden

private statische Funktion autoload(){

spl_autoload_register (array (__CLASS__,'load'));
}

// Definieren Sie eine benutzerdefinierte Lademethode
private static function load($classname){

// Hier einfach die Controller- und Modellklassen der App automatisch laden

if (substr($classname, -10) == "Controller"){

// Controller

require_once CURR_CONTROLLER_PATH . "$classname.class.php";

} elseif (substr($classname, -5) == "Modell"){

// Modell

require_once MODEL_PATH . "$classname.class.php";
} }
}
Jedes Framework hat seine eigenen Benennungsregeln, und unseres ist keine Ausnahme. Für eine Controller-Klasse muss sie etwa xxxController.class.php hei?en, und für eine Modellklasse muss sie xxModel.class.php hei?en. Warum müssen Sie bei der Verwendung eines Frameworks die Benennungsregeln befolgen? Automatisches Laden ist ein Grund.

Routing/Verteilung
// Routing und Dispatching

private statische Funktion Dispatch(){

// Instanziieren Sie die Controller-Klasse und rufen Sie ihre Aktionsmethode auf

$controller_name = ?Controller“;

$action_name = ?Aktion“

$controller-> $action_name();

}
In diesem Schritt verteilt index.php die Anfrage an die entsprechende Controller::Aciton()-Methode.

Basis-Controller-Klasse
Normalerweise gibt es einen Basis-Controller in der Kernklasse des Frameworks. In Symfony hei?t es sfAction; in iOS hei?t es UIViewController. Hier nennen wir es Controller und erstellen Controller.class.php unter Framework/Core
// Base Controller
class Controller{ // Base Controller hat eine Eigenschaft namens $loader , it ist eine Instanz der Loader-Klasse (sp?ter eingeführt)
protected $loader; ($url,$message,$wait = 0){
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????CURR_VIEW_PATH . "message.html"; >???????????????? Ausgang; Genauer gesagt ist $this->loader eine Variable, die auf die instanziierte Load-Klasse verweist. Ich werde hier nicht zu viel darüber diskutieren, aber es ist in der Tat ein sehr Schlüsselkonzept. Ich habe einige PHP-Entwickler getroffen, die glauben, dass nach dieser Aussage:
$this->loader = new Loader();
$this->load ein Objekt ist. Nein, es ist nur eine Referenz. Dies wird seit Java verwendet und vor Java wurde es in C und Objective C als Zeiger bezeichnet. Eine Referenz ist ein gekapselter Zeigertyp. In iOS (O-C) haben wir beispielsweise ein Objekt erstellt:
UIButton *btn = [UIButton alloc] init]; Anwendungscontroller und -modelle. Aber wie l?dt man Klassen automatisch in das Framework-Verzeichnis? Jetzt k?nnen wir eine neue Loader-Klasse erstellen, die die Klassen und Funktionen in das Framework-Verzeichnis l?dt. Wenn wir die Framework-Klasse laden, müssen wir nur die Methode in dieser Loader-Klasse aufrufen.
class Loader{
// Bibliotheksklassen laden
?ffentliche Funktionsbibliothek($lib){
include LIB_PATH }
// Loader Hilfsfunktionen. Namenskonvertierung ist xxx_helper.php;
public function helper($helper){
include HELPER_PATH }
}

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So bewerten Sie die Kosteneffizienz der kommerziellen Unterstützung für Java-Frameworks So bewerten Sie die Kosteneffizienz der kommerziellen Unterstützung für Java-Frameworks Jun 05, 2024 pm 05:25 PM

Die Bewertung des Kosten-/Leistungsverh?ltnisses des kommerziellen Supports für ein Java-Framework umfasst die folgenden Schritte: Bestimmen Sie das erforderliche Ma? an Sicherheit und Service-Level-Agreement-Garantien (SLA). Die Erfahrung und das Fachwissen des Forschungsunterstützungsteams. Erw?gen Sie zus?tzliche Services wie Upgrades, Fehlerbehebung und Leistungsoptimierung. W?gen Sie die Kosten für die Gesch?ftsunterstützung gegen Risikominderung und Effizienzsteigerung ab.

Wie ist die Lernkurve von PHP-Frameworks im Vergleich zu anderen Sprach-Frameworks? Wie ist die Lernkurve von PHP-Frameworks im Vergleich zu anderen Sprach-Frameworks? Jun 06, 2024 pm 12:41 PM

Die Lernkurve eines PHP-Frameworks h?ngt von Sprachkenntnissen, Framework-Komplexit?t, Dokumentationsqualit?t und Community-Unterstützung ab. Die Lernkurve von PHP-Frameworks ist im Vergleich zu Python-Frameworks h?her und im Vergleich zu Ruby-Frameworks niedriger. Im Vergleich zu Java-Frameworks haben PHP-Frameworks eine moderate Lernkurve, aber eine kürzere Einstiegszeit.

Leistungsvergleich von Java-Frameworks Leistungsvergleich von Java-Frameworks Jun 04, 2024 pm 03:56 PM

Laut Benchmarks sind Quarkus (schneller Start, geringer Speicher) oder Micronaut (TechEmpower ausgezeichnet) für kleine, leistungsstarke Anwendungen die ideale Wahl. SpringBoot eignet sich für gro?e Full-Stack-Anwendungen, weist jedoch etwas langsamere Startzeiten und Speichernutzung auf.

Wie wirken sich die Lightweight-Optionen von PHP-Frameworks auf die Anwendungsleistung aus? Wie wirken sich die Lightweight-Optionen von PHP-Frameworks auf die Anwendungsleistung aus? Jun 06, 2024 am 10:53 AM

Das leichte PHP-Framework verbessert die Anwendungsleistung durch geringe Gr??e und geringen Ressourcenverbrauch. Zu seinen Merkmalen geh?ren: geringe Gr??e, schneller Start, geringer Speicherverbrauch, verbesserte Reaktionsgeschwindigkeit und Durchsatz sowie reduzierter Ressourcenverbrauch. Praktischer Fall: SlimFramework erstellt eine REST-API, nur 500 KB, hohe Reaktionsf?higkeit und hoher Durchsatz

Best Practices für die Dokumentation des Golang-Frameworks Best Practices für die Dokumentation des Golang-Frameworks Jun 04, 2024 pm 05:00 PM

Das Verfassen einer klaren und umfassenden Dokumentation ist für das Golang-Framework von entscheidender Bedeutung. Zu den Best Practices geh?rt die Befolgung eines etablierten Dokumentationsstils, beispielsweise des Go Coding Style Guide von Google. Verwenden Sie eine klare Organisationsstruktur, einschlie?lich überschriften, Unterüberschriften und Listen, und sorgen Sie für eine Navigation. Bietet umfassende und genaue Informationen, einschlie?lich Leitf?den für den Einstieg, API-Referenzen und Konzepte. Verwenden Sie Codebeispiele, um Konzepte und Verwendung zu veranschaulichen. Halten Sie die Dokumentation auf dem neuesten Stand, verfolgen Sie ?nderungen und dokumentieren Sie neue Funktionen. Stellen Sie Support und Community-Ressourcen wie GitHub-Probleme und Foren bereit. Erstellen Sie praktische Beispiele, beispielsweise eine API-Dokumentation.

So w?hlen Sie das beste Golang-Framework für verschiedene Anwendungsszenarien aus So w?hlen Sie das beste Golang-Framework für verschiedene Anwendungsszenarien aus Jun 05, 2024 pm 04:05 PM

W?hlen Sie das beste Go-Framework basierend auf Anwendungsszenarien aus: Berücksichtigen Sie Anwendungstyp, Sprachfunktionen, Leistungsanforderungen und ?kosystem. G?ngige Go-Frameworks: Gin (Webanwendung), Echo (Webdienst), Fiber (hoher Durchsatz), gorm (ORM), fasthttp (Geschwindigkeit). Praktischer Fall: Erstellen einer REST-API (Fiber) und Interaktion mit der Datenbank (gorm). W?hlen Sie ein Framework: W?hlen Sie fasthttp für die Schlüsselleistung, Gin/Echo für flexible Webanwendungen und gorm für die Datenbankinteraktion.

Roadmap zum Java Framework-Lernen: Best Practices in verschiedenen Bereichen Roadmap zum Java Framework-Lernen: Best Practices in verschiedenen Bereichen Jun 05, 2024 pm 08:53 PM

Roadmap zum Java-Framework-Lernen für verschiedene Bereiche: Webentwicklung: SpringBoot und PlayFramework. Persistenzschicht: Ruhezustand und JPA. Serverseitige reaktive Programmierung: ReactorCore und SpringWebFlux. Echtzeit-Computing: ApacheStorm und ApacheSpark. Cloud Computing: AWS SDK für Java und Google Cloud Java.

Was sind die h?ufigsten Missverst?ndnisse im Lernprozess des Golang-Frameworks? Was sind die h?ufigsten Missverst?ndnisse im Lernprozess des Golang-Frameworks? Jun 05, 2024 pm 09:59 PM

Beim Go-Framework-Lernen gibt es fünf Missverst?ndnisse: überm??iges Vertrauen in das Framework und eingeschr?nkte Flexibilit?t. Wenn Sie die Framework-Konventionen nicht befolgen, wird es schwierig, den Code zu warten. Die Verwendung veralteter Bibliotheken kann zu Sicherheits- und Kompatibilit?tsproblemen führen. Die überm??ige Verwendung von Paketen verschleiert die Codestruktur. Das Ignorieren der Fehlerbehandlung führt zu unerwartetem Verhalten und Abstürzen.

See all articles