愛がままに我がままに僕はYAMLを裏切らないの話

いや、普通にTVで流れていただけですw
昨今は平成の話のTVばかりでなんともなぁ〜
何て思う訳です

さてさて、今回は前回の続きです

バーコード(ASIN)によるデータ取得APIを作成するという話(2019年2月17日)

前回はStaticなWeb Page jqueryで書籍の内容を指定してやる方法を紹介してみました。
我ながらちょっと良い感じかな何て思いましたが、もう少し検討箇所はありますが、その辺りは読者の皆様の想像、妄想力に期待しましょう。
ヒントとしては、タグの内容に書いていると内容定義が難しいよね。
アトリビュートに入れると内容を組み込みやすいよね… 答えかw

今回の成果物を紹介します。

http://35.78.51.61/i_hasekura/

おすすめの支倉凍砂先生の書籍一覧です。
結構読んでないなwコミックもあるからだいぶと残っています。
きれいに表示出来ました。技術的にとソースを参照すると前回と同じです。
前回のソースをそのまま使いました。
タグ内にバーコード(ASIN)をカンマ区切りで入れると展開します。
そのバーコード(ASIN)をLaravelで動的に突っ込んでいます。
内容をYAMLファイルにて定義して作ってみました。

YAMLってのは…と言うサイトとLaravelでの紹介を兼ねるとこんな感じです。

https://symfony.com/doc/current/components/yaml/yaml_format.html

簡単に言うとファイル形式、CSVとかの親戚です!

YAMLファイルの内容を抜粋して下に書きます。

'狼と羊皮紙':
  - 4048923560
  - 404892754X
  - 4048933388
  - 4049122014
'WORLD END ECONOMiCA':
  - 4048691120
  - 4048693247
  - 4048693255
'少女は書架の海で眠る':
  - 4048692518

:の前、キー部分に書籍グループ(今回はシリーズ名)中の配列を指定しています。

HTMLに書籍グループとアプリ部分はLaravelのbladeだけで作ってみました。
個人的にはI/O関係は… Service… Repository部分で定義するのが良いとは思いますが、それは今後紹介します。

はじめに、Lravelプロジェクトを作成して… (略)
次に、Webアクセスのルートをindex.blade.phpに飛ばします

<?php
Route::get('/', function () {
    return view('index');
});

https://github.com/wataru775/laravel_sample_yml_books/blob/master/routes/web.php

はい。’/’にアクセスしますとindexにviewって飛ばします。

次に、index.blade.php部分を紹介します

https://github.com/wataru775/laravel_sample_yml_books/blob/master/resources/views/index.blade.php

HTMLとjQuery部分は前回と同じです。重点部分を下に出します。

        @foreach( \Symfony\Component\Yaml\Yaml::parseFile(database_path('books.yml'),\Symfony\Component\Yaml\Yaml::PARSE_OBJECT) as $title => $books)
        <h3>{{ $title }}</h3>
        <div class='row book_cover'>{{ join(',',$books) }}</div>
        @endforeach

foreachは繰り返しです…
嘘です… そのレベルでしたら…
さて、「\Symfony\Component\Yaml\Yaml::PARSE_OBJECT」は、すみません。試行錯誤の後です。無くても良かったです
他の部分を紹介します

database_path('books.yml')

コレがファイルの場所を指定します。
プロジェクトのdatabaseディレクトリがあります!
の下にあるbooks.ymlファイルを取り出します。
storageとの差を考えましたが、databaseでしょうw

https://github.com/wataru775/laravel_sample_yml_books/blob/master/database/books.yml

ファイルが指定できたので、次にYAMLファイルを解析します。

\Symfony\Component\Yaml\Yaml::parseFile

SymfonyのYAMLファイルを読み取ります。

https://symfony.com/doc/current/components/yaml.html

https://medium.com/smallprogtips/parsing-yaml-files-in-laravel-5-bca2ead5242e

この辺りは結構参考になります。

今回は書籍一覧表示システムのYAMLファイルを用いた物を紹介してみました。
(Static系はこれ以上は難しいかな)
次回は動的な部分になると思います。
… どうしよう。ちょっとばっかり難しい部分が出るので、少し違うグループになるかな。とかとかとか、考えています

ぐうぉ〜〜〜

次回!