Quantcast
Channel: PHP8タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 521

Laravelパッケージを作ろう!その壱

$
0
0
複数プロジェクトに跨る様な、コアライブラリを作りたくなりました。 パッケージ化すれば良いらしいので、備忘録として纏めて行こうと思います。 マシンスペック Mac mini 2018 macOS Catalina(10.15.x) Intel Core-i7 3.2GHz 6コア メモリ 32GB SSD 512GB 開発環境 PHP(PHP-FPM) 8.x Composer 2.x Laravel 8.x やりたい事 複数プロジェクトで共通のコアライブラリを作りたい composer require 〜で導入可能にしたい 社内で使うので外部公開しない 環境構築 まずはLaravel環境を構築する。 Docker ComposeでLaravel開発環境を構築その陸#使い方 パッケージ作成 パッケージ構成は、こんな感じ。 [laravel] ← Laravelプロジェクト |-app |-packages ← 作成 |-bobtabo ← パッケージルート |-library ← ここで composer init する |-src |-... まずは、Laravelプロジェクト内にpackagesディレクトリを作成し、必要なものは配下に作成する packages/bobtabo/libraryで、composer init を実行して、質問に回答して行く。 Package name (<vendor>/<name>) [root/core]: bobtabo/library Description []: Bobtabo Core Library Author [, n to skip]: n Minimum Stability []: Package Type (e.g. library, project, metapackage, composer-plugin) []: library License []: MIT Define your dependencies. Would you like to define your dependencies (require) interactively [yes]? Search for a package: php Enter the version constraint to require (or leave blank to use the latest version): ^8.0 Search for a package: laravel/framework Enter the version constraint to require (or leave blank to use the latest version): ^8.12 Search for a package: Would you like to define your dev dependencies (require-dev) interactively [yes]? Search for a package: barryvdh/laravel-ide-helper Enter the version constraint to require (or leave blank to use the latest version): ^2.9 Search for a package: squizlabs/php_codesniffer Enter the version constraint to require (or leave blank to use the latest version): ^3.5 Search for a package: 〜 中略 〜 Do you confirm generation [yes]? Would you like to install dependencies now [yes]? packages/bobtabo/library に、composer.json が作成されます。 composer.json { "name": "bobtabo/library", "description": "Bobtabo Core Library", "type": "library", "require": { "php": "^8.0", "laravel/framework": "^8.12" }, "require-dev": { "barryvdh/laravel-ide-helper": "^2.9", "squizlabs/php_codesniffer": "^3.5" }, "license": "MIT" } 他、必要なのあれば、編集します。 ※参考 Laravel でいつも最初から仕込むようなファイルたちはパッケージにしてしまおう 【Laravel】パッケージ開発の第一歩 〜helloページを出力する〜 Laravel Package Development#Package Skeleton 社内で横断的に使えるPHPライブラリを書こう! 自作Composerのパッケージの基本的な構成 Gitリポジトリにプッシュする 空のリポジトリを用意します。 作成したリポジトリに紐付けます。 $ cd ~/laravel/packages/bobtabo/library $ git init $ git remote add origin https://github.com/bobtabo/laravel-package.git あとは、コマンドまたはIDEでプッシュすれば良いです。 ※参考 【git】既存のフォルダをgit管理にしてリモートリポジトリと紐づける パッケージを導入する リポジトリを追加します。 $ cd ~/laravel $ composer config repositories.bobtabo/library vcs https://github.com/bobtabo/laravel-package composer.json に追加されます。 ~/laravel/composer.json { "name": "laravel/laravel", "type": "project", "description": "The Laravel Framework.", ・・・ "scripts": { "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" ], ・・・ }, "repositories": { "bobtabo/library": { "type": "vcs", "url": "https://github.com/bobtabo/laravel-package" } } } パッケージをインストールします。 $ composer require bobtabo/library Using version dev-master for bobtabo/library ./composer.json has been updated Running composer update bobtabo/library ・・・ Package manifest generated successfully. vendorに追加されてる!! ※参考 composerでGitHubのリポジトリからパッケージ追加する方法

Viewing all articles
Browse latest Browse all 521

Trending Articles