Laravel 基礎知識

1. Laravel と

Laravel は PHP で書かれたオープンソースの Web アプリケーションフレームワークです。2011 年に Taylor Otwell によって作られ、現在では PHP フレームワークの中で最も人気のあるものの一つとなっています。MVC(Model-View-Controller)アーキテクチャを採用しており、ビジネスロジック・データ・表示を分離して開発できます。

1.1 主要な機能
機能説明
Eloquent ORMデータベース操作をオブジェクト指向で直感的に扱える。SQLをほとんど書かずにDB操作が可能
Blade テンプレートシンプルかつ強力なテンプレート構文。HTMLとPHPを綺麗に分離
Artisanコマンドラインツール。コードの自動生成・マイグレーション・キャッシュクリアを効率化
ルーティングRoute::get(‘/users’, …) のような直感的な記述でURLとコントローラーを結びつける
認証(Auth)ログイン・登録・パスワードリセットなどの認証機能を標準装備
マイグレーションデータベース構造のバージョン管理
キューと スケジューラ非同期処理・タスクの定期実行

2.Composer による依存管理

2.1 Composer とは

Composer は PHP の依存管理ツールです。JavaScript の npm、Python の pip に相当します。Laravel 自体も Composer を使ってインストール・管理されます。「アプリの部品調達係」と考えると理解しやすいです

2.2 Composer の3つの役割
  • 買い物リストの管理: composer.json = 「このアプリに必要な部品リスト」
  • 部品の調達と配置: Packagist からライブラリを取得して vendor/ に配置
  • 部品同士の互換性チェック: バージョン矛盾がないか自動確認

2.3 ライブラリの所在
場所役割
Packagist (packagist.org)PHPライブラリのカタログ(Amazonのサイトに相当)
GitHub実際のソースコードの置き場所(Amazonの倉庫に相当)
vendor/ フォルダあなたのPCに取ってきた完成品(自宅に届いた荷物)
ローカルキャッシュ一度落としたものの控え(物置に置いてある予備)
2.4 よく使うコマンド

composer install               # composer.lock通りにインストール
composer update                # 制約内で更新
composer require guzzlehttp/guzzle  # 新規パッケージ追加
composer remove vendor/package      # パッケージ削除
composer dump-autoload         # オートローダーの再生成

3.ライブラリの選定基準

3.1 評価軸(重要度順)
観点確認場所重要度
メンテナンスの活発さGitHubの最終コミット日・Issue対応状況★★★
ダウンロード数・利用実績Packagistの月間DL数★★★
GitHub StarsGitHubのスター数★★☆
ライセンスcomposer.jsonのlicense欄★★★

ドキュメントの質
GitHubのREADME★★☆
Laravel公式・コミュニティ標準か
Laravel News・ブログ記事★★★
依存ライブラリの少なさcomposer.jsonのrequire欄★★☆
3.2 PDF生成ライブラリの比較例

PDF生成は「鬼門」と言われるほど難しい分野です。文字化けや不安定さの原因の多くは、ライブラリそのものではなく、日本語フォント設定・CSS制限・サーバー環境に起因します。

ライブラリ特徴日本語対応
barryvdh/laravel-dompdf最も定番。HTML→PDFが簡単。PHPだけで動く
CSSの再現度高い。
設定が必要だが可能
barryvdh/laravel-snappySpatie製で信頼性高い。
可能
spatie/laravel-pdfNode.js+Chromiumが必要Node.js+Chromiumが必要可能
3.3 ブラウザ印刷 vs サーバーPDF生成

このプロジェクトでは、PDF生成ライブラリの複雑さを回避するため、ブラウザの印刷機能(@media print)を採用しています。

比較項目ブラウザ印刷サーバーPDF生成
文字化けほぼ起きないフォント設定が必要
CSSの対応最新CSS全て使用可能部分的な制限あり
開発の難易度通常のHTML開発と同じ調整に時間がかかる
自動化・バッチ処理不可可能
メール添付不可可能
サーバー負荷ゼロ(クライアント処理)高い

ブックマークする パーマリンク.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です