ferdikam / laravel-multisite

Multiple sites on one codebase

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Usage

Config (hosts, homestead)

First of all, 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. The sites are now present in the database.

Routes

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('/', 'BlogController@homepage')->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. <3 Laravel, Vue and other awesome tools.

Buy Us A Beer

Would be awesome if you would buy us a beer! Or a lot of beer :)

License

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

About

Multiple sites on one codebase

License:MIT License


Languages

Language:PHP 100.0%