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)

Hei?e Themen

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

PHPBECAMEPOPULARFORWebDevelopmentDuetoitSeaseoflearning, Seamlessintegrationwithhtml, weit verbreitete Hostingsupport, andalargeecosystemincludingFrameWorkelaravelandcmsplatformen -?hnliche WordPress.itexcelsinformlingsformen, Managingusesersions, Interacti

Tosettherighttimezoneinphp, usedate_default_timezone_set () functionAtthestartofyourScriptWithAvalididentifiersuchas'america/new_york'.1.usedate_default_timezone_set () beeanydate/timeFununtions.2.Alternativ, konfigurieren
