laravel-multisite

by appstract

Multiple sites on one codebase

209 Stars 25 Forks Last release: almost 3 years ago (1.0.0) MIT License 49 Commits 17 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Laravel Multisite

Latest Version on Packagist Total Downloads Software License Build Status

With this package it is possible to build multiple sites/(sub)domains on one codebase.

Installation

You can install the package via composer:

composer require appstract/laravel-multisite

Config (hosts, homestead)

You need to add the sites to your

/etc/hosts
file and
Homestead.yaml
. For example,
mywebsite.dev
and
blog.mywebsite.dev
. In the
Homestead.yaml
, you need to map the sites to the same folder.

Publish

By running

php artisan vendor:publish --provider="Appstract\Multisite\MultisiteServiceProvider"
in your project all files for multisite will be published. The files that will be published are: a migration, a seeder and a config file.

Seeder

The seeder will be published but needs to be run when running

php artisan db:seed
, so you need the add
$this->call(SitesTableSeeder::class);
to your
DatabaseSeeder.php
file. After migrating and seeding the sites are now present in the database.

Usage

This is the main part, within your

routes/web.php
you can set routes for your sites within route groups, like this:
Route::group([
    'domain' => 'blog.'.config('multisite.host'),
    'as' => 'blog.',
    'middleware' => 'site:blog'
], function () {
    Route::get('/', '[email protected]')->name('homepage');
});

The magic happens with the site middleware

site:blog
. This will tell your app that the routes within the group are belonging to the blog. It will provide a variable called
$currentSite
in all your views. There is also a config available, which you can access with
Config::get('multisite.site')
.

Testing

$ composer test

Contributing

Contributions are welcome, thanks to y'all :)

About Appstract

Appstract is a small team from The Netherlands. We create (open source) tools for webdevelopment and write about related subjects on Medium. You can follow us on Twitter, buy us a beer or support us on Patreon.

License

The MIT License (MIT). Please see License File for more information.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.