まえがき
Adventカレンダー21日目の投稿予定です
What is Yii framework?
YiiはPHPのフレームワークで日本ではあまり採用されないものの海外では評価が高いフレームワークです
特徴は
・MVCによるUI構成
・完全オブジェクト思考
・軽量高速で負荷に強い
上記以外にもたくさんのメリットがあります
詳しくは公式サイトを見てみてください
早速導入!
composerの導入
まずは公式サイトにそってcomposerをインストールします
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -v
Apacheのインストール
使用率が高く安定しているApacheサーバーを採用しました
sudo apt install apache2
Yiiのインストール
cd /var/www/html/
composer create-project --prefer-dist yiisoft/yii2-app-basic yiiapp
これで/var/www/html/下にyiiappというディレクトリが作成されます
が
解決方
php-curl
php-dom
この2つをインストールすることで解決しました
sudo apt install php-curl
sudo apt install php-dom
これで再度
$cd /var/www/html/
$composer create-project --prefer-dist yiisoft/yii2-app-basic yiiapp
//実行結果
Creating a "yiisoft/yii2-app-basic" project at "./yiiapp"
Info from https://repo.packagist.org: #StandWithUkraine
Installing yiisoft/yii2-app-basic (2.0.47)
- Installing yiisoft/yii2-app-basic (2.0.47): Extracting archive
Created project in /home/tsuneki/Qiita/yiiapp
Loading composer repositories with package information
Updating dependencies
Lock file operations: 85 installs, 0 updates, 0 removals
- Locking behat/gherkin (v4.9.0)
- Locking bower-asset/bootstrap (v5.2.3)
- Locking bower-asset/inputmask (3.3.11)
- Locking bower-asset/jquery (3.6.2)
- Locking bower-asset/punycode (v1.3.2)
- Locking bower-asset/yii2-pjax (2.0.8)
- Locking cebe/markdown (1.2.1)
- Locking codeception/codeception (4.2.2)
- Locking codeception/lib-asserts (1.13.2)
- Locking codeception/lib-innerbrowser (1.5.1)
- Locking codeception/module-asserts (1.3.1)
- Locking codeception/module-filesystem (2.0.2)
//続く
見事インストール完了しました
起動!
$ cd /var/www/html/yiiapp/web/
$ php -S localhost:6060
php -S localhost:ポート番号
ではブラウザからlocalhost:6060にアクセスしてみます
コンソールも確認してみましょう
ログがしっかりと書き込まれています
aboutページを編集
aboutページを開いてみます
※上写真では文章変更済み
どうやら/var/www/html/yiiapp/views/site/about.phpをいじれば編集できそうです
$ cd /var/www/html/yiiapp/views/site/
$ ls
about.php contact.php error.php index.php login.php
$ sudo vim about.php
<?php
/** @var yii\web\View $this */
use yii\helpers\Html;
$this->title = 'About';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="site-about">
<h1><?= Html::encode($this->title) ?></h1>
<p>
This is the About page.I change code
</p>
<code><?= __FILE__ ?></code>
</div>
かんたんにですが上のように変更しました
再度
$ cd /var/www/html/yiiapp/web/
$ php -S localhost:6060
変更が適用されているか確認しましょう
Login情報の追加
興味というのはどこかしら湧くものでloginユーザーを増やしてみたくなりました
現状
admin:admin
demo:demo
の2種が用意されています
loginページを見ると/app/models/User.phpを編集すれば良さそうです
$ cd /var/www/html/yiiapp/models/
$ ls
ContactForm.php LoginForm.php User.php
$ sudo vim User.php
ではイタズラ開始
private static $users = [
'100' => [
'id' => '100',
'username' => 'admin',
'password' => 'admin',
'authKey' => 'test100key',
'accessToken' => '100-token',
],
'101' => [
'id' => '101',
'username' => 'demo',
'password' => 'demo',
'authKey' => 'test101key',
'accessToken' => '101-token',
],
'102' => [
'id' => '102',
'username' => 'root',
'password' => 'root',
'authKey' => 'test102key',
'accessToken' => '102-token',
],
];
root:rootを追加してみました
もう一度サーバを立ててLoginページに移動ー>root,rootでログインボタンをポチッ
みごとログインできました
終わりに
Yiiフレームワーク 面白いです
日本でも採用率が上がることを祈っています
参考文献