2020-09-22 yps学習記録その7〜準備編〜
2020/09/22
今回もLaravelでアプリを作る課題なのですが、もりもりなので絶賛取り組み中です。
準備編として記事を投稿したいと思います。
やったこと
-
Laravelでwebアプリを作る準備
- worldデータベースの準備
- プロジェクトの準備
- Gio.jsの導入
今回作るアプリの条件は
- MySQL公式のデータベースを使うこと
- JSライブラリGio.jsを使うこと
worldデータベースの準備
まずは公式からデータをいただいてくる。
cd /tmp
wget https://downloads.mysql.com/docs/world.sql.zip
unzip world.sql.zip
mysql cli入ってDBを作り、解凍したデータを入れていく。
mysql> create database world;
mysql> use world;
mysql> source world.sql;
mysql> show tables;
+-----------------+
| Tables_in_world |
+-----------------+
| city |
| country |
| countrylanguage |
+-----------------+
3 rows in set (0.00 sec)
mysql> exit;
無事データが入った!
こちらを後でプロジェクトに連携させて使えるようにする。
プロジェクトの準備
$ composer create-project --prefer-dist "laravel/laravel=7.25.0" gio_app
$ cd gio_app
$ php artisan key:generate
$ sudo chmod -R 777 storage/ bootstrap/cache/
$ vi .env
envにデータベースの名前と自分の設定したパスワードを入れておく。
これでLaravelから使えるようになる(*・ω・)ノ
あとはプロジェクトを新規作成する時にやってるnginxの設定変更。
$ sudo vi /etc/nginx/conf.d/default.conf
// 然るべきところを「root /var/www/gio_app;」に変更。
$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm
これで作ったLaravelプロジェクトにアクセスできることを確認。
プロジェクトの初期設定関連は主にtask2でやっていたことの復習。
Gio.jsの導入
公式はこちら。めちゃめちゃ格好いい。
これまでの手順を振り返って手順を踏んで行ってみる。
$ npm install
$ npm install cross-env
$ npm install giojs --save
(そしてここで私はGio.jsの導入に半日くらい詰まる地獄に入る。)
以下、自分が表示できるまでに行った方法を載せる。
まずはGio.jsの読み取り。
resourse/js/bootstrap.js
に以下の記載を追加。
window.GIO = require('giojs');
これはresourse/js/app.js
に読み取られる。
あとはこれを使ってブラウザに表示する。
resourse/js/script.js
というファイルを作って中身にサンプルコードを入れる。
var container = document.getElementById("globalArea");
var controller = new GIO.Controller(container);
controller.addData(data);
controller.init();
webpack.mix.jsでこのファイルをコンパイルするようにする。
mix.js('resources/js/app.js', 'public/js')
.js('resources/js/script.js', 'public/js') //ここを追加
.sass('resources/sass/app.scss', 'public/css');
npm run dev
してコンパイルが通ればok。
welcome.blade.php
に表示用のdivとbody末尾にscript読み込みを追加。
...
<div id="globalArea" style="width:800px;height:420px"></div>
<script src="https://raw.githack.com/syt123450/giojs/master/build/gio.min.js"></script>
<script src="{{ asset('js/app.js') }}"></script>
<script src="{{ asset('js/script.js') }}"></script>
</body>
これで地球儀が表示できるはず。
意外と?LaravelにJSライブラリを追加する手順で参考記事があまりなくて辛かった。
wget等でpublic/js
に直接必要なファイルを持ってきても良いみたい。
あと、Gio.jsの公式サンプルがjQuery入れているので同じように使うとわかりやすそう。
(私はBootstrapと一緒に導入する予定٩( ‘ω’ )و)
気づきなど
- 何かのデータの流れを可視化するものなので、API使うとかajaxとか勉強することがたくさん…!そしてJS久しぶりです。苦しみながら楽しみます。