Erstellen und Ausführen eines Yii 2 Projekts
Was ist Yii 2?
Yii 2 ist ein leistungsfähiges PHP-Framework, das sich für die Entwicklung moderner Webanwendungen eignet. Es folgt dem MVC-Designmuster (Model-View-Controller) und bietet eine breite Palette an Funktionen und Tools, die es Entwicklern ermöglichen, qualitativ hochwertige Webanwendungen schnell zu entwickeln. Yii 2 zeichnet sich durch Effizienz, Flexibilität und Skalierbarkeit aus und ist daher die erste Wahl vieler Entwickler.
Hauptmerkmale und Vorteile von Yii 2
- Hohe Leistung: Yii 2 ist ein Framework mit hoher Leistung und kann viele gleichzeitige Anfragen verarbeiten.
- Modularität: Es bietet eine Vielzahl von Modulen und Plugins, die eine einfache Erweiterung und Anpassung der Funktionen ermöglichen.
- Sicherheit: Integrierte Sicherheitsfunktionen wie Eingabevalidierung, Ausgabe-Filterung und CSRF-Schutz.
- Benutzerfreundlichkeit: Eine einfach zu verwendende API und umfassende Dokumentationen helfen Entwicklern, schnell mit der Arbeit zu beginnen.
- Starke Community-Unterstützung: Eine aktive Entwickler-Community und zahlreiche Drittanbieter-Erweiterungen.
Yii 2 hilft Entwicklern, leistungsstarke und qualitativ hochwertige Webanwendungen schnell zu erstellen und eignet sich für Projekte jeder Größenordnung.
Erstellen und Ausführen eines Yii 2 Projekts mit ServBay
In diesem Artikel verwenden wir die PHP-Umgebung von ServBay, um ein Yii 2 Projekt zu erstellen und auszuführen. Wir werden die „Host“-Funktion von ServBay nutzen, um den Webserver einzurichten und das Projekt mithilfe einfacher Konfigurationen zugänglich zu machen.
WARNING
Achtung: Wenn Sie zuvor NGINX oder Apache verwendet haben
ServBay verwendet standardmäßig Caddy als Webserver. Für Benutzer, die von NGINX und Apache zu ServBay migrieren, gibt es einige wichtige Änderungen zu beachten:
Caddy Konfiguration
ServBay hat Caddy bereits integriert und die Standardkonfiguration ist optimiert und bereitgestellt. Entwickler müssen keine Caddy-Konfigurationsdateien manuell ändern, da sie den Webserver über die „Host“-Funktion von ServBay verwalten können.
Rewrite-Regeln und .htaccess
Bei NGINX und Apache müssen Entwickler üblicherweise selbst Rewrite-Regeln und .htaccess-Dateien schreiben, um URL-Umleitungen und andere Konfigurationen vorzunehmen. ServBay hat die Regeln für Caddy bereits vorkonfiguriert, sodass Entwickler diese Regeln nicht selbst schreiben müssen, es sei denn, sie haben spezielle Anforderungen.
Mehr erfahren
Weitere Informationen finden Sie unter Rewrite und htaccess, Wie man eine Apache-Website zu ServBay migriert und Wie man eine NGINX-Website zu ServBay migriert.
Erstellen eines Yii 2 Projekts
TIP
ServBay empfiehlt Entwicklern, Websites im Verzeichnis /Applications/ServBay/www
zu platzieren, um eine einfache Verwaltung zu ermöglichen.
Composer installieren
ServBay wird mit vorinstalliertem Composer geliefert, sodass keine separate Installation erforderlich ist.
Erstellen eines Yii 2 Projekts
Erstellen Sie mithilfe von Composer ein neues Basisanwendungstemplate für Yii 2:
bashcd /Applications/ServBay/www mkdir servbay-yii2-app cd servbay-yii2-app composer create-project --prefer-dist yiisoft/yii2-app-basic .
1
2
3
4Wechseln ins Projektverzeichnis
Wechseln Sie in das neu erstellte Yii 2 Projektverzeichnis:
bashcd /Applications/ServBay/www/servbay-yii2-app
1
Initiale Konfiguration
Datenbankverbindung konfigurieren
Konfigurieren Sie die Datenbankverbindung in der Datei
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Cache- und Redis-Komponenten konfigurieren
Fügen Sie in der Datei
config/web.php
die Konfiguration für Cache und Redis ein:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Konfiguration des Webservers
Verwenden Sie die „Host“-Funktion von ServBay, um das Yii 2 Projekt über den Webserver zugänglich zu machen. Fügen Sie in den „Host“-Einstellungen von ServBay einen neuen Host hinzu:
- Name:
My First Yii 2 Dev Site
- Domain:
servbay-yii2-test.local
- Websitetyp:
PHP
- PHP Version: Wählen Sie
8.3
- Website-Root-Verzeichnis:
/Applications/ServBay/www/servbay-yii2-app/web
Weitere Details zu den Einstellungen finden Sie unter Erstes Website hinzufügen.
Beispielcode hinzufügen
Fügen Sie den folgenden Code in die Datei controllers/SiteController.php
ein:
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\web\Response;
class SiteController extends Controller
{
public function actionIndex()
{
return $this->render('index');
}
public function actionMemcached()
{
$cache = Yii::$app->cache;
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->asText($value);
}
public function actionRedis()
{
$redis = Yii::$app->redis;
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->asText($value);
}
public function actionMysqlAdd()
{
Yii::$app->db->createCommand()->insert('users', [
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->asText('User added');
}
public function actionMysql()
{
$users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll();
return $this->asJson($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Fügen Sie den folgenden Code in die Datei views/site/index.php
ein:
<?php
/* @var $this yii\web\View */
$this->title = 'My Yii2 Application';
?>
<div class="site-index">
<div class="jumbotron">
<h1>Congratulations!</h1>
<p class="lead">You have successfully created your Yii2 application.</p>
</div>
</div>
2
3
4
5
6
7
8
9
10
Website-Zugriff
Öffnen Sie einen Browser und besuchen Sie die folgenden URLs:
https://servbay-yii2-test.local
: Sie sehen die standardmäßige Yii 2 Willkommensseite.
NoSQL-Datenbankbeispiele
Memcached Beispiel
Memcached Erweiterung installieren
In ServBay ist die Memcached-Erweiterung vorinstalliert, sodass keine zusätzliche Installation erforderlich ist.
Memcached konfigurieren
Konfigurieren Sie die Memcached-Verbindung in der Datei
config/web.php
:php'components' => [ 'cache' => [ 'class' => 'yii\caching\MemCache', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], // ... ],
1
2
3
4
5
6
7
8
9
10
11
12
13Memcached verwenden
Verwenden Sie den Cache im Controller:
phppublic function actionMemcached() { $cache = Yii::$app->cache; $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Redis Beispiel
Redis Erweiterung installieren
In ServBay ist die Redis-Erweiterung vorinstalliert, sodass keine zusätzliche Installation erforderlich ist.
Redis konfigurieren
Konfigurieren Sie die Redis-Verbindung in der Datei
config/web.php
:php'components' => [ 'redis' => [ 'class' => 'yii\redis\Connection', 'hostname' => '127.0.0.1', 'port' => 6379, 'database' => 0, ], // ... ],
1
2
3
4
5
6
7
8
9Redis verwenden
Verwenden Sie den Cache im Controller:
phppublic function actionRedis() { $redis = Yii::$app->redis; $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->asText($value); }
1
2
3
4
5
6
7
Relationale Datenbankbeispiele
Datenbankstruktur erstellen und Migrationsdateien
Migrationsdatei erstellen
Erstellen Sie eine Migrationsdatei mit dem Yii 2 Gii Tool:
bashphp yii migrate/create create_users_table
1Migrationsdatei bearbeiten
Bearbeiten Sie die neue Migrationsdatei im
migrations
Verzeichnis und definieren Sie die Tabellenstruktur:phppublic function up() { $this->createTable('users', [ 'id' => $this->primaryKey(), 'name' => $this->string()->notNull(), 'email' => $this->string()->notNull()->unique(), 'created_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP'), 'updated_at' => $this->timestamp()->defaultExpression('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ]); }
1
2
3
4
5
6
7
8
9
10Migration ausführen
Führen Sie die Migration mit dem Yii 2 Migrationsbefehl aus, um die Tabellen zu erstellen:
bashphp yii migrate
1
MySQL Beispiel
MySQL konfigurieren
Konfigurieren Sie die MySQL-Verbindung in der Datei
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Benutzerdaten einfügen
Fügen Sie Benutzerdaten im Controller ein:
phppublic function actionMysqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8MySQL verwenden
Rufen Sie die Datenbank im Controller auf:
phppublic function actionMysql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
PostgreSQL Beispiel
PostgreSQL konfigurieren
Konfigurieren Sie die PostgreSQL-Verbindung in der Datei
config/db.php
:phpreturn [ 'class' => 'yii\db\Connection', 'dsn' => 'pgsql:host=127.0.0.1;dbname=servbay_yii2_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', ];
1
2
3
4
5
6
7Benutzerdaten einfügen
Fügen Sie Benutzerdaten im Controller ein:
phppublic function actionPgsqlAdd() { Yii::$app->db->createCommand()->insert('users', [ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->asText('User added'); }
1
2
3
4
5
6
7
8PostgreSQL verwenden
Rufen Sie die Datenbank im Controller auf:
phppublic function actionPgsql() { $users = Yii::$app->db->createCommand('SELECT * FROM users')->queryAll(); return $this->asJson($users); }
1
2
3
4
5
Durch diese Schritte haben Sie erfolgreich ein Yii 2 Projekt erstellt und ausgeführt, und nutzen die Funktionen von ServBay, um Ihr Projekt zu verwalten und zugänglich zu machen, während Sie mehrere Datenbanken anschließen und Daten abrufen. Wir hoffen, dass dieser Artikel Ihnen einen schnellen Einstieg in Yii 2 ermöglicht und bei der Umsetzung Ihrer Projekte hilfreich ist.