在Mac开发环境Laravel Valet中配置运行Flarum论坛系统的方法详解
下面由laravel教程栏目给大家介绍在 Mac 开发环境 Laravel Valet 中配置运行 Flarum 论坛系统的实现方法,希望对需要的朋友有所帮助!
Laravel Valet 是为Mac OS X提供的极简开发环境,但是,Valet的配置和传统的HTTP服务器(Apache、Nginx等)有些区别,不同于在配置文件中重写URL,Valet通过在PHP类中使用一种模块化方式定义URL处理。由于Flarum和Laravel默认目录结构不同,所以我们需要在Valet定义其访问配置。
在~/.valet/Drivers目录下有个默认的配置文件SampleValetDriver.php,其中包含了三个方法:serves,isStaticFile 和 frontControllerPath。我们现在要配置一个自己的配置文件FlarumValetDriver.php,仿照这三个方法编写自己的驱动扩展:
cp SampleValetDriver.php FlarumValetDriver.php
打开FlarumValetDriver.php,首先重写serves方法,在该方法中我们要指定Valet对应Web根目录下对应的Flarum应用目录(我这里是flarum,如果不一样需要修改为你自己的Flarum应用目录)是否存在,这有点类似Nginx中定义root:
public function serves($sitePath, $siteName, $uri){ return is_dir($sitePath.'/vendor/flarum') && file_exists($sitePath.'/flarum'); }
接下来在isStaticFile方法中判断给定URL是否指向静态文件,并且静态文件确实存在,这类似于我们在nginx中定义静态文件访问:
public function isStaticFile($sitePath, $siteName, $uri){ if ($this->isActualFile($staticFilePath = $sitePath.$uri)) { return $staticFilePath; } return false; }
最后重写frontControllerPath方法,该方法类似Apache中的mod_rewrite和Nginx中的try_uri,在这里我们可以重写请求访问路径:
public function frontControllerPath($sitePath, $siteName, $uri) { if (strpos($uri,'/admin') === 0) { return $sitePath.'/admin.php'; } if (strpos($uri,'/api') === 0) { return $sitePath.'/api.php'; } return $sitePath.'/index.php'; }
最终结果如下所示,我们将其保存到~/.valet/Drivers下:
<?php class FlarumValetDriver extends ValetDriver { /** * Determine if the driver serves the request. * * @param string $sitePath * @param string $siteName * @param string $uri * * @return bool */ public function serves($sitePath, $siteName, $uri) { return is_dir($sitePath.'/vendor/flarum') && file_exists($sitePath.'/flarum'); } /** * Determine if the incoming request is for a static file. * * @param string $sitePath * @param string $siteName * @param string $uri * * @return string|false */ public function isStaticFile($sitePath, $siteName, $uri) { if ($this->isActualFile($staticFilePath = $sitePath.$uri)) { return $staticFilePath; } return false; } /** * Get the fully resolved path to the application's front controller. * * @param string $sitePath * @param string $siteName * @param string $uri * * @return string */ public function frontControllerPath($sitePath, $siteName, $uri) { if (strpos($uri,'/admin') === 0) { return $sitePath.'/admin.php'; } if (strpos($uri,'/api') === 0) { return $sitePath.'/api.php'; } return $sitePath.'/index.php'; } }
这样就可以正常访问Falrum的所有路由了。如果访问报错:
Call to undefined method FlarumValetDriver::isActualFile() in /Users/sunqiang/.valet/Drivers/FlarumValetDriver.php on line 29
这是因为Valet未升级到最新版本,执行以下命令升级Valet即可:
composer global update
原文地址:https://xueyuanjun.com/post/5679
Atas ialah kandungan terperinci 在Mac开发环境Laravel Valet中配置运行Flarum论坛系统的方法详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Laravel - Perintah Artisan - Laravel 5.7 hadir dengan cara baharu untuk merawat dan menguji arahan baharu. Ia termasuk ciri baharu untuk menguji arahan artisan dan demonstrasi disebut di bawah?

Laravel - Penyesuaian Penomboran - Laravel termasuk ciri penomboran yang membantu pengguna atau pembangun menyertakan ciri penomboran. Paginator Laravel disepadukan dengan pembina pertanyaan dan ORM Fasih. Kaedah penomboran automatik

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Laravel - Dump Server - Laravel dump server datang dengan versi Laravel 5.7. Versi sebelumnya tidak termasuk pelayan dump. Pelayan dump akan menjadi kebergantungan pembangunan dalam fail komposer laravel/laravel.

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...
