laravel valet 是为mac os x提供的极简开发环境,但是,valet的配置和传统的http服务器(apache、nginx等)有些区别,不同于在配置文件中重写url,valet通过在php类中使用一种模块化方式定义url处理。由于flarum和laravel默认目录结构不同,所以我们需要在valet定义其访问配置。
在~/.valet/drivers目录下有个默认的配置文件samplevaletdriver.php,其中包含了三个方法:rves,isstaticfile 和 frontcontrollerpath。我们现在要配置一个自己的配置文件flarumvaletdriver.php,仿照这三个方法编写自己的驱动扩展:
cp samplevaletdriver.php flarumvaletdriver.php
打开flarumvaletdriver.php,首先重写rves方法,在该方法中我们要指定valet对应web根目录下对应的flarum应用目录(我这里是flarum,如果不一样需要修改为你自己的flarum应用目录)是否存在,这有点类似nginx中定义root:
public function rves($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 fal;}
最后重写frontcontrollerpat广东海洋大学排名h方法,该方法类似apache中的mod_rewrite和nginx中的try_uri,在这里我们可以重360杀毒软件好用吗写请求访问路径:
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 rves the request. * * @param string $sitepath * @param string $sitename * @param string $uri * * @return bool */ public function rves($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|fal */ public function isstaticfile($sitepath, $sitename, $uri) { if ($this->isactualfile($staticfilepath 夸人的英语句子= $sitepath.$uri)) { return $staticfilepaσ怎么读th; } return fal; } /** * 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 /urs/sunqiang/.valet/drivers/flarumvaletdriver.php on line 29
这是因为valet未升级到最新版本,执行以下命令升级valet即可:
compor global 婚礼誓词新郎update
以上就是在mac开发环境laravel valet中配置运行flarum论坛系统的方法详解的详细内容
本文发布于:2023-04-08 13:22:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/deae4dd1b632d1d93a856cda4d8e90bd.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:在Mac开发环境Laravel Valet中配置运行Flarum论坛系统的方法详解.doc
本文 PDF 下载地址:在Mac开发环境Laravel Valet中配置运行Flarum论坛系统的方法详解.pdf
留言与评论(共有 0 条评论) |