yii 2.0 wurde im vergangenen April in die Beta ver?ffentlicht und das Ziel für eine erste stabile Ver?ffentlichung wurde für die Mitte 2014 festgelegt. Die GitHub -Ausgabeliste hat 300 offene Probleme und 2913 geschlossen, w?hrend ich dies schreibe, und beide Zahlen steigen immer noch . Der Fortschritt des Meilensteins von 2.0RC lag bei 99%. Ich vermute, dass das Team nahe ist, aber wir müssen wahrscheinlich nur ein bisschen l?nger warten. W?hrend wir alle warten, schauen wir uns an, was wir erwarten k?nnen, indem wir uns ein bereits verfügbares Beispiel ansehen.
Key Takeaways
- yii 2.0 führt signifikante Verbesserungen und ?nderungen ein, einschlie?lich der Verwendung von Namespaces, Merkmalen und Komponisten -Integration, wobei die modernen PHP -Framework -Funktionen verbessert werden.
- Das Framework hat sich von dem Blaupause CSS -Framework auf Twitter Bootstrap verschoben, was nicht nur die ?sthetik ver?ndert, sondern auch umfangreiche UI -Komponenten für die schnelle Anwendungsentwicklung bietet.
- Fehlerbehebung in YII 2.0 wurde überarbeitet, um alle Fehler in Ausnahmen umzuwandeln, informativere Ausgabe zu liefern und Debugging -Prozesse zu verbessern.
- gii, das Tool für die Codegenerierung in YII, bleibt in YII 2.0 integraler und unterstützt jetzt eine bessere Codegenerierung für CRUD -Operationen und Internationalisierung.
- yii 2.0 erfordert PHP 5.4 oder h?her und verwendet erweiterte PHP
Die erste Version von YII wurde nach ihrer Ver?ffentlichung im Jahr 2008 ziemlich schnell beliebt. Es ist Gründer Qiang Xue, zuvor am Prado -Framework und verwendete Erfahrung und Feedback, um YII zu bauen.
yii verwendet viele Ideen aus anderen Frameworks, Sprachen und Bibliotheken: Prado, Ruby, JQuery, Symfony und Joomla werden als Inspirationsquellen anerkannt.
Die ersten Commits für YII 2.0 stammen aus dem Jahr 2011, aber die Entwicklung hat im letzten Jahr abgenommen. Das Team hat eine Umschreibung mit dem Ziel neu geschrieben, der PHP -Framework der neu neuen Generation zu werden. Es verwendet die neuesten Technologien und Funktionen wie Komponist, PSR, Namespaces, Merkmale und mehr.
etwas erw?hnenswert ist, dass die Unterstützung nach der Download Seite YII Version 1.1 am 31. Dezember 2015 endet. Wir haben also etwas Zeit, um über den übergang nachzudenken.
Anforderungen
Die Verwendung von Namespaces und Merkmalen erh?hte die Anforderungen auf PHP 5.4. Zus?tzlich ben?tigen Sie die MB_String-, PDO- und INTL -Erweiterungen bei der Entwicklung. Dies sollte kein Problem sein, wenn Sie Ihren eigenen Server ausführen, aber wenn Sie sich in einer gemeinsam genutzten Umgebung befinden. Natürlich wird dieses Problem rechtzeitig verschwinden.
Installation
yii ist jetzt vom Komponisten installierbar. Wir werden diese Installationsmethode bald durchlaufen.
derzeit sind zwei Anwendungsbeispiele verfügbar. Es gibt ein grundlegendes Beispiel mit einigen Seiten, einer Kontaktseite und einer Anmeldeseite. Das erweiterte Beispiel fügt eine separate Front- und Backend-, Datenbankinteraktion, Anmeldung und Kennwortwiederherstellung hinzu.
Erste Schritte
Ich beginne mit dem grundlegenden Beispiel. Wenn Sie sich YII zuvor angesehen haben, werden Sie dasselbe grundlegende webapp erkennen, mit dem Yii 1.1 mitgekommen ist. Installieren Sie das Grundbeispiel mit dem Komponisten mit dem folgenden Befehl:
composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
Sie k?nnen dann überprüfen, ob Ihr Server die Anforderungen erfüllt, indem Sie http: //localhost/yii2-app-basic/requirements.php ?ffnen. Die tats?chliche Anwendung wird dann von http: // localhost/yii2-app-basic/web/ausgeführt.
Dies ist die erste wichtige Sache, die Sie bemerken müssen: Die Idee ist, dass Sie das Dokumentenrouch Ihrer Anwendung auf/path/to/application/web festlegen, ?hnlich wie bei Symfony. Das Verzeichnislayout hat sich von Version 1.1 ein wenig ge?ndert. Wenn Sie genau hinschauen, ist die ?nderung sinnvoll und verbessert die Sicherheit Ihrer Anwendung.
Zuvor würden alle Anwendungskomponenten (Modelle, Ansichten, Controller, Framework- und Lieferantenbibliotheken) im Dokumentenrouch im geschützten Ordner unter dem Dokument root leben. Auf diese Weise hing die Sicherheit von .htaccess -Dateien ab, die respektiert wurden, was bedeutete, dass Ihre Anwendung bei Nginx standardm??ig zu 100% unsicher war. Das Verschieben aller Anwendungskomponenten vom Dokumentwurzel verhindert, dass der Webserver Ihre Anwendungskomponenten an einen Benutzer sendet.Sie k?nnten nach den tats?chlichen Framework -Quellen suchen. Das Framework ist eine Komponente, die mit dem Komponisten installiert wurde, sodass sie sich im Verzeichnis von compendoryiisftyii befindet. Hier finden Sie viel mehr, aber im Moment werden wir es einfach dabei lassen.
?ndern wir vorerst die lokale Webserverkonfiguration und setzen Sie das Dokumentroot auf/path/to/application/web. Ich habe einen virtuellenHost http: //yii2-app-basic.localhost/ hinzugefügt, aber tun, was Sie für Ihre eigene Situation geeignet halten. Die Standardkonfiguration wird so eingestellt, dass die Skriptdatei in der URL ausgeblendet wird. Wenn Sie Apache verwenden, müssen Sie dem Web -Verzeichnis eine .htaccess -Datei hinzufügen, um Apache zum Umschreiben zu unterweisen. Es ist standardm??ig nicht vorhanden.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.phpEin Blick auf die grundlegende yii -Anwendung
Nachdem wir die grundlegende Bewerbung ausgeführt haben, sind einige Glückwünsche in Ordnung…
Sie beginnen mit der Startseite, einer Statik über Seite, einer Kontaktseite und einer Anmeldeseite. Die Kontaktseite und das Anmeldesformular haben die gleiche Funktionalit?t wie zuvor. CAPTCHA -Code, Formularvalidierung und zwei Benutzer zur Anmeldung zur Anmeldung zur Anmeldung sind dieselben wie zuvor. Nahe nichts. Trotzdem ist es ein guter Anfang.
Das Design der grundlegenden Anwendung ?nderte sich dramatisch. Zuvor erhalten Sie eine Anwendung, die auf dem Blueprint CSS -Framework basiert, w?hrend wir jetzt mit Twitter Bootstrap beginnen. Verbesserung? Es wird wahrscheinlich mit Blueprint verglichen, aber wiederum ist Bootstrap viel mehr als die Blaupause jemals versucht zu sein.
Bootstrap bietet Ihnen alle Arten von Anwendungskomponenten und beschleunigt eine Anwendung. Einige m?gen andererseits argumentieren, dass alle Websites mit Bootstrap gleich aussehen (Themen beheben dies nur teilweise), und es wird auch Ihre Website gr??er. In jedem Fall erfolgt die Integration mit YII 2.0 mit der Erweiterung der YII2-Bootstrap. Dies macht es sehr einfach, die Bootstrap -Komponenten in Ihre Ansichten zu integrieren.
Eine andere Sache, die Sie bemerken werden, ist die Debug -Leiste unten. Es ist standardm??ig installiert und aktiviert, genau wie in Symfony. Es erm?glicht einen schnellen Zugriff auf viele Informationen zu Ihrer Konfiguration, Anforderungen und Anwendungsprotokollierung. Es wird auch eine Geschichte von Anfragen mit Debug -Informationen führen.
yii behandelt Fehler, die sich normalerweise als PHP normalerweise tun würden. YII wandelt alle Fehler (t?dlich und nicht t?dlich) in Ausnahmen um. Diese werden behandelt, indem Sie eine aufschlussreiche Ausgabe machen, die Sie auf den Punkt hinweist, an dem Sie durcheinander gebracht wurden oder Ihr Code eine Mitteilung generiert hat. Sogar analysieren Sie Fehler, für die YII 1.1 auf die grundlegenden PHP -Fehler zurückgreifen würde, erhalten Sie einen sch?n gerenderten überblick über Ihren Code. Dies ist etwas, was die meisten von uns zu sch?tzen wissen.
gii ist ebenfalls erneut vorhanden und standardm??ig aktiviert.
gii hilft Ihnen, indem Sie Code generieren, mit dem Sie beginnen k?nnen, ein weiteres gro?artiges Tool, um Ihre Entwicklung zu beschleunigen. Es generiert Modelle und Controller für Sie. Der CRUD -Generator geht noch einen Schritt weiter und generiert einen vollst?ndigen MVC -Satz für alle Aktionen. GII wird auch Code generieren, das besser für die Internationalisierung (i18n) geeignet ist, indem Sie sofort die Funktion yii :: t () einfügen, in der Sie sie ben?tigen.
Die grundlegende Anwendung wird jetzt auch mit einer einfachen Befehlszeilenanwendung geliefert, auf die Sie erstellen k?nnen. Yii 1.1 hat dies bereits unterstützt, aber Sie müssten ein Beispiel aus dem Wiki erhalten.
Das finden Sie in der grundlegenden Anwendung. Es gibt auch ein -Anwendungsbeispiels . Es hat eine etwas andere Struktur, fügt Ihrer Anwendung jedoch noch mehr Funktionen hinzu:
- Benutzerberechtigung, Authentifizierung und Kennwortwiederherstellung.
- Eine Anwendung, die in eine Vorder- und Backend aufgeteilt ist.
Setzen Sie den Blick auf die grundlegende Version fort, lassen Sie uns einen genaueren Blick auf den Code werfen…
Was hat sich ge?ndert?
hat sich viel ge?ndert. Einige ?nderungen k?nnten Sie zun?chst verwirren, aber ich finde die meisten ?nderungen sinnvoll und sind leicht zu akzeptieren. Hier sind einige der ?nderungen, die ich interessant, lustig oder r?tselhaft empfunden habe.
Die Anforderung von PHP 5.4 machte einige ?nderungen m?glich; Die Array -Short -Tags sind verfügbar. Es ist auch sicher, die Echo -Short -Tags in Ansichten zu verwenden, da dies nicht mehr von den Konfigurationseinstellungen abh?ngt.
composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
Eine kleine ?nderung, aber eine, die Sie schnell treffen werden; Vorher verwenden Sie Yii :: App (), um auf die Anwendungsinstanz und die Komponenten zuzugreifen. In Yii 2.0 ?nderte sich dies von einer statischen Funktion zu einer statischen Variablen yii :: $ App.
Die übersetzungsfunktion yii :: t () ist immer noch bei uns. Es weist YII an, die I18N -Komponente zu verwenden, um den mitgelieferten Text in die aktuelle verwendete Sprache zu übersetzen. Sie k?nnen es auch anweisen, Variablen zu ersetzen.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
Die Formatierung und Styling der Platzhalter wurde ernsthaft überarbeitet, was mehr Formatierungsoptionen erm?glicht. Einige Beispiele:
<span><span><?php </span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1 </span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0 </span></span><span><span>?></span> </span><span><span><?php echo $someVar; ?></span> //Yii 1.1 </span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
Aufgrund dieser Platzhalterformatierung ist die datetimeFormatter verschwunden:
<span><span><?php </span></span><span><span>echo `Yii<span>::</span>t('app', 'Hello, {username}!', [ </span></span><span> <span>'username' => $username, </span></span><span><span>]); </span></span><span><span>?></span></span>
Diese Funktionalit?t wird von der Intensivbibliothek geliefert. Die YII -Dokumentation nennt die Originaldokumentation dafür: ?ziemlich kryptisch“. Ich wage Sie, es zu lesen und zu verstehen. Hoffen wir, dass die YII -Dokumentation eine lesbare Version rechtzeitig enth?lt.
Controller
zuvor w?re AccessControl () eine Funktion Ihres Controllers, wenn Sie die YII -Zugriffskontrollfunktionalit?t verwenden m?chten. Mit yii 2.0 ist die Zugriffskontrolle Teil des Verhaltens des Controllers ():
<span><span><?php </span></span><span><span>echo <span>\Yii</span>::t('app', '{n, number} is spelled as {n, spellout}', ['n' => 81]); </span></span><span><span>echo <span>\Yii</span>::t('app', 'You are {n, ordinal} in line, please hold.', ['n' => 3]); //Will echo "You are 3rd in line, please wait.". </span></span><span><span>echo <span>\Yii</span>::t('app', 'There {n, plural, =0{are no cats} =1{is one cat} other{are # cats}}!', array( </span></span><span> <span>'n' => 14, </span></span><span><span>)); </span></span><span><span>?></span></span>
Dies ist fast identisch mit der Art und Weise, wie es in Yii 1.1 war.
Ich habe bemerkt, dass der Beispielcode (nicht das Framework selbst!) Viele Docblocks fehlt und viele @Inheritdoc -Kommentare enth?lt. Dies ist nicht das, was Sie von einem Beispiel erwarten, aber ich gehe davon aus, dass dies rechtzeitig repariert wird.
Modelle
Das Basismodell (zuvor Cmodel) ?nderte sich nicht sehr. Szenarien erm?glichen es Ihnen nun, die Durchsetzung von Validierungsregeln zu ?ndern. Sie k?nnen ?ndern, was auf Ihrem aktuellen Szenario validiert werden muss (d. H. Ein Modell mit unterschiedlichen Regeln, wenn sie von vorne oder Backend verwendet werden).
Der abgeleitete Activerecord wurde jedoch ernsthaften Ver?nderungen durchgesetzt. Die Syntax für die Suche mit ActiveCord wurde eher zu Schreibfragen, da CDBCRiteria verschwunden ist. Es wurde durch ActiveQuery ersetzt, das das Abrufen von Informationen einfacher erm?glichte:
<span><span><?php </span></span><span><span>//Previously in Yii 1.1 </span></span><span><span>Yii<span>::</span>app()->dateFormatter->formatDateTime(time(), 'medium', 'medium'); </span></span><span> </span><span><span>//In Yii 2.0 </span></span><span><span>echo <span>\Yii</span>::t('app', 'The date is {0, date, short}', time()); //uses the pre-defined 'short' notation (i18n save) </span></span><span><span>echo <span>\Yii</span>::t('app', 'The date is {0, date, YYYY-MM-dd}', time()); //or define your own notation </span></span><span><span>?></span></span>Die Definition
Beziehungen hat sich ebenfalls dramatisch ge?ndert. Nehmen wir zum Beispiel eine Website mit Bloggern, die Artikel ver?ffentlichen, die Benutzer kommentieren. Die Relations -Definitionen für die Autorentabelle werden nachstehend beschrieben. Ich beginne damit, wie es in yii 1.1:
aussah.composer.phar create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic
Wie Sie sehen k?nnen, definieren Sie alle Beziehungen eines aktiven Datensatzes in einem gro?en Array. In YII 2.0 müssen Sie Getter -Methoden definieren, die ein ActiveQuery -Objekt für all diese Beziehungen zurückgeben. Sie müssen das Schlüsselwort "durch" verwenden, um eine Beziehung zwischen einer Vermittlertabelle zu definieren.
Sie haben jetzt zwei Optionen, um dies zu definieren. Normalerweise verwenden Sie die via () -Methode in einer Beziehungsfunktion. Sie k?nnen die Beziehung auch mit der Viatable () -Methode definieren, wenn Sie die Daten nur nach der Pivot -Tabelle ben?tigen. Gleiches Beispiel wie oben, aber jetzt für YII 2.0:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php
Dies ist ein ziemlich einfaches Beispiel. Das Definieren der Beziehungen durch die Getter -Funktionen, die ActiveQuery -Objekte zurückgeben, erm?glicht viel mehr. Sie k?nnen beispielsweise eine bestimmte Funktion hinzufügen, die eine Abfrage für Beitr?ge ausführt, die> 50 Kommentare erhalten, indem Sie einen Where () -Anruf in der zurückgegebenen ActiveQuery hinzufügen.
Eine interessante Erg?nzung ist die M?glichkeit, Cross -DBMS -Beziehungen zu definieren. Sie k?nnen die Beziehungen zwischen MySQL und MongoDB oder Redis definieren und in Ihrer Anwendung als ein Objekt verwenden.
Ansichten
Die Hauptsache in Ansichten ist, dass $ dies nicht mehr auf die Controller -Instanz bezieht. In einer Ansicht, $ Dies ist eine Instanz des YiiWebView -Objekts. Der Controller ist über $ this-> Kontext zug?nglich.
Wie ich bereits sagte; PHP 5.4 macht das kurze Echo -Tag konsequent verfügbar. Dies macht die Ansichten, die aus gemischtem PHP und HTML bestehen;
<span><span><?php </span></span><span><span>$elements = array(1,2,3,4); //Yii 1.1 </span></span><span><span>$elements = [1,2,3,4]; //Yii 2.0 </span></span><span><span>?></span> </span><span><span><?php echo $someVar; ?></span> //Yii 1.1 </span><span><span><?= $someVar ?></span> //always safe to use in Yii 2.0</span>
Die Funktionen von Render () und RenderPartial () haben sich ebenfalls ge?ndert. Bevor es die gerenderte Ausgabe automatisch wiederholt und Sie einen zus?tzlichen Parameter hinzufügen, um die gerenderte Ausgabe als Zeichenfolge zu erhalten. Yii 2.0 wird immer eine Zeichenfolge auf Render () zurückgeben-wie Anrufe, was sie mit der Art und Weise, wie sich Widgets verhalten, übereinstimmen.
Upgrade von yii 1.1
Sollten Sie in Betracht ziehen, Ihre YII 1.1 -Anwendung auf yii 2.0 rechtzeitig zu aktualisieren?
Bruno ?kvorc hat kürzlich hier auf SitePoint über den Legacy -Code geschrieben. Er argumentiert, dass ein Umschreiben, das in 2 Monaten durchgeführt werden kann, in Betracht gezogen werden sollte - , insbesondere Wenn die von Ihnen verwendete Software gesch?ftskritisch ist. Ich stimme ihm zu und schl?gt vor, dass Sie es in Betracht ziehen, wenn Sie sich ernsthaft über Ihre Bewerbung informieren und sie über das Ende des Lebens von YII 1.1 hinaus halten m?chten. Aber wie immer; Es h?ngt von Ihrer Situation ab.
Es gibt eine spezielle Seite, die sich für die Aktualisierung von YII auf der YII -Website widmet. Das gr??te Problem sind vorerst Ihre Erweiterungen. Wenn Sie sich auf viele Erweiterungen verlassen, f?llt es Ihnen schwer, dass die Community einige Zeit dauert, um die Erweiterungen für YII 2.0 zu schreiben. Wenn Sie ein echter Profi sind, k?nnen Sie sich natürlich die Erweiterungen, die Sie verwenden, ernsthaft ansehen, und in Betracht ziehen (wieder).
Das Migrationshandbuch enth?lt einen Abschnitt zum Ausführen von YII 1.1 und YII 2.0 in einer Anwendung. Für gro?e Projekte ist dies ein guter Weg, um einen sicheren Migrationspfad zu schaffen. Migrieren Sie Ihren generischen Code in YII 2.0 und nehmen Sie sich Zeit für komplexere oder erweiterte gefüllte Teile.
Schlussfolgerung
über den endgültigen Leitfaden für Yii 2.0 geht es mir immer enthusiastischer, mit YII 2.0 zu beginnen. Ich musste mich bereits daran hindern, es in einem neuen Projekt zu verwenden, weil ich keine Probleme mit dem Vorproduktionscode riskieren konnte.
Die Dokumentationsqualit?t für yii 2.0 verbesserte sich von yii 1.1. Es fiel mir schwer, Dinge herauszufinden, als ich vor ein paar Jahren mit Yii 1.1 begann, und ich bin der Meinung, dass die Dokumentation umfangreicher ist als zuvor.
Haben Sie sich Yii 2.0 bereits angesehen oder vielleicht sogar etwas damit gebaut? Bitte sagen Sie uns, worauf Sie gesto?en sind. Ich würde gerne Ihre Erfahrungen kennen!
h?ufig gestellte Fragen zu yii 2.0
Was sind die neuen Funktionen in Yii 2.0 im Vergleich zu den vorherigen Versionen? Es unterstützt nun die Verwendung von Namespaces, was die Codeorganisation erheblich erleichtert. Es führt auch ein neues Routing -System ein, das flexibler und leistungsf?higer ist. Die ActivereCord -Klassen wurden neu gestaltet, um mehr Datenbanktypen, einschlie?lich NoSQL -Datenbanken, zu unterstützen. Das Framework enth?lt auch eine neue Unterstützung für erholsame API -Entwicklungen, die es einfacher erleichtern, APIs aufzubauen. Darüber hinaus verfügt Yii 2.0 verbesserte Sicherheitsmerkmale, einschlie?lich integrierter CSRF-Schutz (Cross-Site-Anfrage). Unterstützung von Internationalisierung (I18N). Sie k?nnen mehrere übersetzungen derselben Nachricht in verschiedenen Sprachen speichern. Sie k?nnen auch Daten, Zahlen und W?hrungen gem?? dem Gebietsschema formatieren. YII 2.0 unterstützt auch Pluralformen und Nachrichtenauswahl basierend auf dem Kontext.
Was ist der YII 2.0 -Debugger und wie funktioniert es? Ihre Anwendungen. Es sammelt und zeigt Informationen zu jeder Anforderung an Ihre Anwendung, einschlie?lich der ausgeführten SQL -Abfragen, der Anforderung und der Antwortdaten sowie der Leistungssteuerdaten. Sie k?nnen auf diese Informationen über ein Panel unten auf den Seiten Ihrer Anwendung zugreifen. , die mit dem Composer Package Manager installiert werden k?nnen. Nach der Installation k?nnen Sie diese Erweiterungen genau wie die integrierten Merkmale von YII verwenden. Die YII -Community hat eine breite Palette von Erweiterungen entwickelt, die zus?tzliche Funktionen liefern, z. B. Benutzerauthentifizierung, Formularvalidierung und Datenbankabstraktion.
Wie handelt Yii 2.0 Datenbankmigrationen? Sie k?nnen eine neue Migration mit dem Befehl yii migrieren/erstellen erstellen. Das Migrationsskript enth?lt Methoden zur Anwendung und Rückkehr der Migration. Sie k?nnen dann die Migration mit dem Befehl yii migrieren/up anwenden. Es beinhaltet Unterstützung für Routing, Anforderungsverarbeitung, Antwortformatierung und Fehlerbehandlung. Sie k?nnen auch die ActiveController -Klasse verwenden, um Aktionen für Ihre API schnell CRUD (Erstellen, Lesen, Aktualisieren, L?schen) zu generieren. Formularvalidierungssystem. Sie k?nnen Validierungsregeln für Ihre Formularfelder in der Modellklasse definieren. Wenn ein Formular eingereicht wird, validiert YII die Eingabedaten automatisch gegen diese Regeln und generiert geeignete Fehlermeldungen. . Es unterstützt sowohl die traditionelle Benutzername-/Passwortauthentifizierung als auch modernere Methoden wie OAuth und OpenID. Sie k?nnen das integrierte Benutzermodell auch erweitern, um Ihre eigenen Authentifizierungsmethoden hinzuzufügen. Es kann sowohl PHP -Fehler als auch Ausnahmen erfassen und umgehen. Die Fehler k?nnen in verschiedenen Formaten angemeldet und an verschiedene Ziele gesendet werden, z. B. Dateien, E -Mails und Browser.
Wie kann ich meine YII 2.0 -Anwendungen testen? Basierend auf Phpunit und Selen. Es unterstützt sowohl Unit -Tests als auch Funktionstests. Sie k?nnen Testf?lle schreiben, um Ihre Modelle, Ansichten und Controller zu testen. Das Testframework bietet auch Methoden zum Simulieren von Benutzereingaben und zur überprüfung der Ausgabe.
Das obige ist der detaillierte Inhalt vonWas zu erwarten von yii 2.0 zu erwarten ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

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

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

H?ufige Probleme und L?sungen für den variablen PHP -Umfang umfassen: 1. Die globale Variable kann innerhalb der Funktion nicht zugegriffen werden, und sie muss bei der Verwendung des globalen Schlüsselworts oder Parameters übergeben werden. 2. Die statische Variable wird statisch deklariert und nur einmal initialisiert und der Wert wird zwischen mehreren Aufrufen beibehalten. 3.. Hyperglobale Variablen wie $ _get und $ _post k?nnen direkt in jedem Bereich verwendet werden, aber Sie müssen auf eine sichere Filterung achten. 4. Die anonymen Funktionen müssen über das Schlüsselwort verwenden, und wenn Sie externe Variablen ?ndern, müssen Sie eine Referenz übergeben. Das Beherrschen dieser Regeln kann dazu beitragen, Fehler zu vermeiden und die Code -Stabilit?t zu verbessern.

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

Es gibt drei g?ngige Methoden für den PHP -Kommentarcode: 1. Verwenden Sie // oder #, um eine Codezeile zu blockieren, und es wird empfohlen, // zu verwenden. 2. Verwenden Sie /.../, um Codebl?cke mit mehreren Zeilen zu wickeln, die nicht verschachtelt werden k?nnen, aber gekreuzt werden k?nnen. 3.. Kombinationskenntnisse Kommentare wie die Verwendung / if () {} / Um Logikbl?cke zu steuern oder um die Effizienz mit Editor -Verknüpfungsschlüssel zu verbessern, sollten Sie auf die Schlie?ung von Symbolen achten und das Verschachteln bei der Verwendung vermeiden.

AgneeratorinphpiSamemory-effizientes WaytoiterateOverlargedatasetsByyieldingValueatimeinsteadofReturningThemallatonce.1.GeneratorsusetheyieldKeywordtoproduktenvaluesonDemand, ReducingMemoryUsage.2.TheyareusefulforfulforfulfordlingBiglopploups, Lesebiglochen, Leselungen, Lesebigs, Leselung, oder

Der Schlüssel zum Schreiben von PHP -Kommentaren liegt in der Kl?rung des Zwecks und der Spezifikationen. Kommentare sollten "Warum" und nicht "was getan" erkl?ren, um Redundanz oder zu Einfachheit zu vermeiden. 1. Verwenden Sie ein einheitliches Format wie Docblock (/*/) für Klassen- und Methodenbeschreibungen, um die Lesbarkeit und die Kompatibilit?t der Werkzeuge zu verbessern. 2. Betonen Sie die Gründe für die Logik, z. B. warum JS -Sprünge manuell ausgeben müssen. 3. Fügen Sie eine übersichtsbeschreibung vor komplexem Code hinzu, beschreiben Sie den Prozess in Schritten und helfen Sie, die Gesamtidee zu verstehen. V. Gute Anmerkungen k?nnen die Kommunikationskosten senken und die Effizienz der Code -Wartung verbessern.

Toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1.onwindows, download undInstallxampp, SelectComponents, Startapache und PlaceFilesinhtdocscs.2.Anternativ, manuellinstallphpfrfr

In PHP k?nnen Sie quadratische Klammern oder lockige Klammern verwenden, um Zeichenfolgenspezifikationsspezifische Indexzeichen zu erhalten, aber quadratische Klammern werden empfohlen. Der Index startet von 0 und der Zugriff au?erhalb des Bereichs gibt einen Nullwert zurück und kann keinen Wert zugewiesen; MB_SUBSTR ist erforderlich, um Multi-Byte-Zeichen zu verarbeiten. Zum Beispiel: $ str = "Hallo"; echo $ str [0]; Ausgabe H; und chinesische Zeichen wie Mb_Substr ($ str, 1,1) müssen das richtige Ergebnis erzielen. In den tats?chlichen Anwendungen sollte die L?nge der Zeichenfolge vor dem Schleifen überprüft werden, dynamische Zeichenfolgen müssen für die Gültigkeit verifiziert werden, und mehrsprachige Projekte empfehlen, Multi-Byte-Sicherheitsfunktionen einheitlich zu verwenden.

Tolearnphpeffectival, startbysettingupalocalerverenVironmentusexs -LikexamppandacodeeditorikevScode.1) InstallxamppForapache, MySQL und Php.SeacodeeditorForsyntaxSupport.3) testyourscludingveliktingveliktelaThbiliodble.Neclyble.NektFile
