The following is the Laravel Getting Started tutorial column to introduce you to the Laravel 7 extension development tutorial. I hope it will be helpful to friends who need it!
#Step 1. Create a new project
I prefer to use the Laravel installer.
laravel new lara-dg
I prefer using SQLite for testing and package development. Modify your .env file:
DB_CONNECTION=sqlite DB_DATABASE=/Users/ivan/code/packages/test-project/database/database.sqlite
Then let’s create the package skeleton. We will use the CLI tool. It will generate all the necessary files:
composer require jeroen-g/laravel-packager
Then you can run the build command. Webkid represents the vendor name (your namespace) and LaravelDiagnostic represents your project name:
php artisan packager:new Webkid LaravelDiagnostic --i
Then enter the information about you and your package. It should now look like this:

Console Output
Now you have the packages folder in your project, which has the Webkid directory and all the required document.
This package is automatically loaded through composer. I prefer using relative paths:
"repositories": {
"webkid/laraveldiagnostic": {
"type": "path",
"url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic"
}
}Also, if your require section doesn't update automatically, please update it manually. It will create a symbolic link to the package directory in your vendor directory.
"require": {
"webkid/laraveldiagnostic": "*"
},Now you can create classes in the src folder, but they should have the appropriate namespace Webkid\LaravelDiagnostic.
For example, I have a Commands directory with a RunDiagnostic.php in it class file. So it should have a namespace like this:
namespace Webkid\LaravelDiagnostic\Commands;
If you want to use migrations, routes, configuration files, views or even resource files (js, CSS, images), you need to load them in the service provider. You can learn about it in the official documentation. In this example I just used commands. Take a look at the bootForConsole() method in my LaravelDiagnosticServiceProvider:
public function bootForConsole()
{
if ($this->app->runningInConsole()) {
$this->commands([
RunDiagnostic::class
]);
}
}I ran into trouble the first time I tried to construct my package, so I wanted to share my personal experience with you. I prefer to put all PHP classes into the src folder and put all other files outside. For example:
assets—Used to store all CSS, js, images files
config—Used to store all configuration files
migrations—Used to store all migration files
resources — used to store all view files, lang files, etc.
src — used to store all PHP classes, including service providers
If you need to reference other software packages, then You must edit the composer.json file in the package to add it.
"require": {
"cviebrock/eloquent-sluggable": "^4.3"
}A more useful tip: when you need to test changed resources simultaneously, you can use symlinks to avoid repeating vendor releases all the time. It will create symbolic links instead of copying files. This trick saves me a lot of time
ln -s /path/to/your/project/webkid-cms/packages/webkid/cms/assets /path/to/your/project/webkid-cms/ public/vendor/cms
Then update Composer's autoloader to add the new file:
composer dump-autoload
Step 2. Put your project on GitHub
When your code base is ready, you can go to the package directory to initialize a Git repository.
cd packages/Webkid/LaravelDiagnostic git init git add . git commit -m "first commit"
Create a new GitHub repository and add origin.
git remote add origin git@github.com:yourusername/yourrepository.git git push -u origin master git tag -a 1.0.0 -m "release: First version" git push --tags
Step 3. Put your project on Packagist
First, on Packagist .org website registration. I prefer to sign up using my GitHub account.
Then use this URL to submit a new package. Enter your package's GitHub URL and click Check. If any errors occur, follow the on-screen instructions.
After completing the previous step, you will be redirected to your package's packagist page, where you may receive the following notification:
This package will not be updated automatically. Please set up a GitHub Service Hook for Packagist to update it every time you push!
Let’s set it up. Get the API token on this page, then visit your package's GitHub page and find the Settings / Webhooks and Services / Add New Service interface. Search Packagist, enter your name and token, and click Submit. The error displayed on the Packagist page should disappear within 5–10 minutes.
Congratulations, you have a valid package online and you can now reference it through composer.
Step 5. Continue in the packages folder
If your sole purpose of developing this software package is to help you develop software packages, then the development of this package finished.
However, if you developed the package in a larger project and now need it, you can keep the code in the packages folder and use it.
Whenever you are done with your work, you can remove this code from your composer.json file
"repositories": {
"webkid/laraveldiagnostic": {
"type": "path",
"url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic"
}
}and then pull your package from packagist.
Thank you for reading. Hope this article is helpful to everyone.
Let's contribute to open source!
Recommended tutorial: "Laravel"
The above is the detailed content of Laravel 7 extension development tutorial. For more information, please follow other related articles on the PHP Chinese website!
Laravel framework skills sharingApr 18, 2025 pm 01:12 PMIn this era of continuous technological advancement, mastering advanced frameworks is crucial for modern programmers. This article will help you improve your development skills by sharing little-known techniques in the Laravel framework. Known for its elegant syntax and a wide range of features, this article will dig into its powerful features and provide practical tips and tricks to help you create efficient and maintainable web applications.
The difference between laravel and thinkphpApr 18, 2025 pm 01:09 PMLaravel and ThinkPHP are both popular PHP frameworks and have their own advantages and disadvantages in development. This article will compare the two in depth, highlighting their architecture, features, and performance differences to help developers make informed choices based on their specific project needs.
Laravel user login function listApr 18, 2025 pm 01:06 PMBuilding user login capabilities in Laravel is a crucial task and this article will provide a comprehensive overview covering every critical step from user registration to login verification. We will dive into the power of Laravel’s built-in verification capabilities and guide you through customizing and extending the login process to suit specific needs. By following these step-by-step instructions, you can create a secure and reliable login system that provides a seamless access experience for users of your Laravel application.
What versions of laravel are there? How to choose the version of laravel for beginnersApr 18, 2025 pm 01:03 PMIn the Laravel framework version selection guide for beginners, this article dives into the version differences of Laravel, designed to assist beginners in making informed choices among many versions. We will focus on the key features of each release, compare their pros and cons, and provide useful advice to help beginners choose the most suitable version of Laravel based on their skill level and project requirements. For beginners, choosing a suitable version of Laravel is crucial because it can significantly impact their learning curve and overall development experience.
How to view the version number of laravel? How to view the version number of laravelApr 18, 2025 pm 01:00 PMThe Laravel framework has built-in methods to easily view its version number to meet the different needs of developers. This article will explore these methods, including using the Composer command line tool, accessing .env files, or obtaining version information through PHP code. These methods are essential for maintaining and managing versioning of Laravel applications.
The latest method of using php framework laravelApr 18, 2025 pm 12:57 PMLaravel is a popular PHP-based web application framework that is popular among developers for its elegant syntax and powerful features. Its latest version introduces many improvements and new features designed to improve the development experience and application performance. This article will dive into Laravel's latest approach, focusing on how to leverage these updates to build more powerful and efficient web applications.
Laravel framework installation methodApr 18, 2025 pm 12:54 PMArticle summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.
How to learn Laravel How to learn Laravel for freeApr 18, 2025 pm 12:51 PMWant to learn the Laravel framework, but suffer from no resources or economic pressure? This article provides you with free learning of Laravel, teaching you how to use resources such as online platforms, documents and community forums to lay a solid foundation for your PHP development journey from getting started to master.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 English version
Recommended: Win version, supports code prompts!

Atom editor mac version download
The most popular open source editor

Dreamweaver Mac version
Visual web development tools






