• Stars
    star
    216
  • Rank 183,179 (Top 4 %)
  • Language
    PHP
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Multiple sites on one codebase

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('/', '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. 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.

More Repositories

1

laravel-opcache

Laravel Package for OPcache
PHP
1,327
star
2

laravel-blade-directives

A collection of nice Laravel Blade directives
PHP
858
star
3

laravel-options

Global key-value store in the database
PHP
722
star
4

laravel-stock

Keep stock for Eloquent models
PHP
287
star
5

laravel-bootstrap-components

Bootstrap components as Laravel components
HTML
192
star
6

laravel-meta

Metadata for Eloquent model
PHP
129
star
7

laravel-tracer

Shows the path of each blade file loaded in a template
PHP
98
star
8

nova-horizon

Horizon statistics in Nova
Vue
79
star
9

lush-http

Smart Http Client for PHP
PHP
63
star
10

dd.js

Laravel dd() in JS
JavaScript
53
star
11

laravel-elixir-env

Use .env variables in Javascript with Laravel Elixir
JavaScript
39
star
12

laravel-response-macros

Extra response macro's for Laravel
PHP
33
star
13

laravel-referer-redirector

Manage redirects based on referers
PHP
32
star
14

nova-opcache

OPcache Tool for Laravel Nova
Vue
19
star
15

php-hostsfile

Read & Write HostsFile Entries with PHP
PHP
13
star
16

laravel-artisan-scan

[WIP] Scan for multiple improvement points
PHP
11
star
17

laravel-crawl-render

Pre-render Javascript sites for web crawlers
PHP
11
star
18

laravel-dusk-safari

Run Dusk tests in Safari
PHP
11
star
19

skeleton-php

Skeleton for PHP packages
PHP
11
star
20

vue-validate

[DEPRECATED] Input validation for Vue
JavaScript
10
star
21

laravel-moneybird

Laravel package for Moneybird
PHP
9
star
22

laravel-dusk-opera

Run Dusk tests in Opera
PHP
8
star
23

nova-signature-field

Signature Pad as a Nova Field
Vue
7
star
24

pakketpartner-php-client

PHP Client for the Pakketpartner API
PHP
7
star
25

laravel-pakketpartner

Wrapper for the Pakketpartner PHP Client
PHP
4
star
26

laravel-bol-retailer

Wrapper package for Bol.com Retailer API
PHP
2
star
27

laravel-twikey

PHP
2
star