Heim > Artikel > Backend-Entwicklung > Laravel Large Project Tutorial Series (6) Optimierung, Unit-Tests und Bereitstellung
In diesem Tutorial werden die Fehlerbehandlung, die Verwendung von Konfigurationsdateien, Unit-Tests und die Bereitstellung auf dem Apache-Server erläutert.
1. Fehlerbehandlung
Wenn die vom Benutzer besuchte URL nicht existiert oder ein Fehler auf dem Server vorliegt, möchten wir keine Fehlerseite zurückgeben, sondern eine Freundliche Eingabeaufforderungsseite. In Laravel kann es problemlos implementiert werden. Wenn auf der Serverseite ein Fehler auftritt, verfügt app/start/global.php
über einen Ausnahmehandler, der standardmäßig alle Ausnahmen behandelt
<code><span>App</span><span>::error(function(Exception</span> $<span>exception</span>) <span>{ <span><span>Log</span>:<span>:<span>error($exception)</span></span></span>; <span>}</span></span>);</code>Es werden Ausnahmeinformationen in das Protokoll geschrieben. Die Standardprotokolldatei ist
. app/storage/logs/laravel.log
<code><span>$ </span>php artisan <span>generate:</span>view error</code>Ändern Sie
: error.blade.php
<code><span>@extends</span>(<span>'_layouts.default'</span>) <span>@section</span>(<span>'main'</span>) Sorry, there <span>is</span> an error! <span>return</span> Index <span>@stop</span></code>in
Hinzugefügt: App::error(function(Exception $exception)
<code><span>return</span> Response<span>::view</span>(<span>'error'</span>, <span>array</span>(), <span>500</span>);</code>Wenn jetzt ein Zugriffsfehler auftritt, wird eine Fehlermeldungsseite angezeigt: 2.404-Verarbeitung Beim Zugriff Wenn die URL nicht vorhanden ist, können wir auch zu einer benutzerfreundlichen Eingabeaufforderungsseite zurückkehren und zunächst eine Ansicht erstellen:
<code>$ php artisan generate:view <span>not</span><span>Found</span></code>Ändern
: notFound.blade.php
<code><span>@extends</span>(<span>'_layouts.default'</span>) <span>@section</span>(<span>'main'</span>) <span>Sorry</span>, the page you requested does <span>not</span> exist! <span>return</span><span>Index</span><span>@stop</span></code>Hinzufügen
: app/start/global.php
<code>App::missing(<span><span>function</span><span>(<span>$exception</span>)</span> {</span><span>return</span> Response::view(<span>'notFound'</span>, <span>array</span>(), <span>404</span>); });</code>Wenn die von Ihnen besuchte URL nicht existiert, wird die folgende Seite angezeigt: 3. Konfigurationsdatei Manchmal benötigen wir möglicherweise einige Werte, die im Voraus festgelegt wurden. Wenn das Programm ausgeführt wird, müssen wir nur auf diesen Wert verweisen, z. B. auf die auf jeder Seite angezeigte Nummer. Wir können Konfigurationsdateien verwenden ist auch einfach zu verwendende Konfigurationsdateien in Laravel. Praktischerweise können wir unter
eine neue mit dem Namen app/config
erstellen und hinzufügen: custom.php
<code><span>return</span><span>array</span>( <span>'page_size'</span> => <span>10</span>, );</code>Jetzt können Sie sie im Programm verwenden, ändern Sie einfach
bis paginate(10)
, wobei paginate(Config::get('custom.page_size')
dem Dateinamen unter custom
und app/config
dem Schlüsselnamen in der entsprechenden Konfigurationsdatei entspricht. Die Konfigurationsdatei kann auch unterschiedlich konfiguriert werden, je nachdem, ob Sie ein sind Eine Entwicklungsumgebung oder eine Produktionsumgebung finden Sie in der offiziellen Dokumentation. page_size
unter app/tests
erstellen und darin eine Klasse mit dem Namen MyTest.php
definieren. Anschließend können Sie Tests schreiben: MyTest
TestCase
<code><span><span>class</span><span>MyTest</span><span>extends</span><span>TestCase</span> {</span><span>public</span><span><span>function</span><span>testIndex</span><span>()</span> {</span><span>$this</span>->call(<span>'GET'</span>, <span>'/'</span>); <span>$this</span>->assertResponseOk(); <span>$this</span>->assertViewHas(<span>'articles'</span>); <span>$this</span>->assertViewHas(<span>'tags'</span>); } <span>public</span><span><span>function</span><span>testNotFound</span><span>()</span> {</span><span>$this</span>->call(<span>'GET'</span>, <span>'test'</span>); <span>$this</span>->assertResponseStatus(<span>404</span>); } }</code>-Komponente installieren, das
von phpunit
hinzufügen: composer.json
require-dev
<code><span>"phpunit/phpunit"</span>: <span>"3.7.*"</span></code>Installation, führen Sie
nach Abschluss aus. Die Testergebnisse werden nach einer Weile angezeigt. Wenn Sie während unseres Tests einige Initialisierungsvorgänge durchführen möchten, z. B. Datenbankmigration und -füllung usw., können Sie dies im composer update
definieren Wenn Sie die Szene wiederherstellen möchten, müssen Sie zuerst vendor/bin/phpunit
ausführen. Wenn Sie während des Tests eine bestimmte Konfigurationsdatei verwenden möchten kann es im Verzeichnis setUp
erstellen. Während des Tests wird die ursprüngliche Konfiguration automatisch überschrieben. parent::setUp
tearDown
5. Auf Apache bereitstellenapp/config/testing
in
auf . Hier erklären wir, wie die Bereitstellung auf dem Apache-Server erfolgt. Zunächst erkläre ich, dass die-Umgebung hier über app/config/app.php
installiert wird. Wir installieren zuerst debug
: false
LAMP
tasksel
und setzen dann die Berechtigungen des mod_rewrite模块
-Verzeichnisses auf 777. In diesem Verzeichnis wird die Website gespeichert:
<code>$ <span>sudo</span> a2enmod rewrite</code>
Dann kopieren Sie den von uns entwickelten Projektordner in diesen Ordner: /var/www
<code>$ sudo chmod -R <span>777</span> /<span>var</span><span>/www/</span></code>Der oben genannte Entwicklungsprojektpfad Es sollte mit Ihrem eigenen übereinstimmen. Später müssen wir die Berechtigungen des Verzeichnisses
auf 777 ändern, da Protokolle usw. im Ordner blog
gespeichert werden, was Schreibvorgänge beinhaltet:
<code><span>$ </span>cd /var/www/ <span>$ </span>cp -r ~<span>/laravel-project/blog</span><span>/ .</span></code>
Konfigurieren Sie den Server unten: app/storage
storage
<code><span>$ </span>cd blog/app/ <span>$ </span>chmod -<span>R</span><span>777</span> storage/</code>in
und ändern Sie dann
:<code>$ sudo vim /etc/apache2/sites-enabled/<span>000</span>-<span><span>default</span>.conf </span></code>
DocumentRoot/var/www/html
Fügen Sie DocumentRoot /var/www/blog/public
apache2.conf
bis
<code>$ <span>sudo</span> vim /etc/apache2/apache2.conf</code>
starten Sie nun den Apache-Server:
<code>AllowOverride <span>all</span></code>
Besuchen Sie
oder<code>Options Indexes FollowSymLinks AllowOverride <span>None</span><span>Require</span><span>all</span> granted</code>im Browser, um unsere Website und die Bereitstellung anzuzeigen ist nun abgeschlossen. 6. Zusammenfassung
<code>$ <span>sudo</span> service apache2 start</code>
本节教程讲了错误处理优化、配置文件的使用、单元测试以及怎么部署到Apache服务器,你可以买一个域名和一个服务器,最好买VPS云服务器,虚拟空间非常有局限性,然后把你自己写的网站部署到服务器让大家一起访问。
最后的代码下载:
<code><span>$ </span>git clone <span>https:</span>/<span>/github.com/shiyanlou</span><span>/laravel-blog-6.git</span></code>
本文详细出自http://www.shiyanlou.com/courses/123,转载请注明出处
以上就介绍了laravel大型项目系列教程(六)之优化、单元测试以及部署,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。