search
HomePHP FrameworkLaravelLaravel 7 extension development tutorial

Laravel 7 extension development tutorial

May 08, 2020 am 10:26 AM
laravelphpExpand

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:

Laravel 7 extension development tutorial

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!

Statement
This article is reproduced at:learnku. If there is any infringement, please contact admin@php.cn delete
Laravel framework skills sharingLaravel framework skills sharingApr 18, 2025 pm 01:12 PM

In 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 thinkphpThe difference between laravel and thinkphpApr 18, 2025 pm 01:09 PM

Laravel 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 listLaravel user login function listApr 18, 2025 pm 01:06 PM

Building 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 beginnersWhat versions of laravel are there? How to choose the version of laravel for beginnersApr 18, 2025 pm 01:03 PM

In 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 laravelHow to view the version number of laravel? How to view the version number of laravelApr 18, 2025 pm 01:00 PM

The 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 laravelThe latest method of using php framework laravelApr 18, 2025 pm 12:57 PM

Laravel 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 methodLaravel framework installation methodApr 18, 2025 pm 12:54 PM

Article 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 freeHow to learn Laravel How to learn Laravel for freeApr 18, 2025 pm 12:51 PM

Want 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.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools