用的多應用 ,目的是只要少量幾個大點的應用
然后再這幾個大點的應用里,再細分子應用, 我用webman試了貌似是不行
規(guī)劃后臺
app/web/controller/sysmanage/index.php
app/web/controller/financialmanage/index.php
http://xxx/web/sysmanage/
http://xxx/web/financial/
規(guī)劃前臺
app/mobile/controller/wechat/index.php
app/mobile/controller/pcwebsite/index.php
http://xxx/mobile/wechat/
http://xxx/mobile/pcwebsite/
這樣都不行, 直接404
直接搞個sysmanage.php 和 financialmanage.php文件可以
但是這樣感覺是很不方便 ,我想更細化的目錄更能方便后期維護, 直接用類文件,項目大的話,后期web目錄里面直接全部是類文件了 看著腦殼都發(fā)暈
目前是只能用多應用,搞一堆一級子應用來解決。咋能實現(xiàn)我想要的那種嘞?
最簡單的方案是給每個url設置路由。
在config/route.php
里加類似如下代碼
$app_iterator = new \RecursiveDirectoryIterator(app_path());
$iterator = new \RecursiveIteratorIterator($app_iterator);
foreach ($iterator as $file) {
if (is_dir($file) || $file->getBasename() != 'index.php' || strpos($file, 'model') || strpos($file, 'view')) {
continue;
}
$path = substr($file, strlen(BASE_PATH), -4);
$class = str_replace('/', '\\', $path);
$route_path = str_replace('/controller', '', substr($path, 4, -6));
$action = 'index';
echo "$route_path=>$class->$action\n";
if (class_exists($class)) {
Route::any($route_path, [$class, $action]);
}
}
以上代碼的意思是將掃描app下的所有controller,根據(jù)文件路徑計算路由路徑和對應的類,然后通過路由將二者綁定。
你試下,如果代碼哪里不對自己調整下。
老大,謝謝你,你的這個方案 我加道route.php 解決了訪問問題了
app/web/controller/sysmanage/index.php
http://xxx/web/sysmanage ok的
但是http://xxx/web/sysmanage/index 還是404
然后在sysmanage路徑下的index.php 加方法 比如:userlist方法
http://xxx/web/sysmanage/userlist 404
試著直接寫個app/web/controller/sysmanage/userlist.php類
http://xxx/web/sysmanage/userlist 404
但是 創(chuàng)建個userlist文件夾 再寫個index.php
http://xxx/web/sysmanage/uselist ok的
研究了您給的代碼 沒搞明白咋改才能符合我的要求
繼續(xù)翻文檔看到有這個
http://127.0.0.1:8787/foo/test 將默認訪問app\controller\Foo類的test方法
http://127.0.0.1:8787/admin/foo/test 將默認訪問app\admin\controller\Foo類的test方法
就想咱們webman內部能不能實現(xiàn)下
http://127.0.0.1:8787/foo/test 將默認訪問app\controller\Foo類的test方法
如果不存在app\admin\controller\Foo類 ,就找foo文件夾的index.php 的 test方法
如果app\admin\controller\Foo文件夾里面index.php不存在,就找foo文件夾下的test類的index方法
還不存在 直接404
再比如
http://127.0.0.1:8787/admin/foo/test 將默認訪問app\admin\controller\Foo類的test方法
如果app\admin\controller\foo類不存在,就找app\admin\controller\Foo文件夾里的index.php的test方法
如果app\admin\controller\foo文件夾不存在index.php,就找app\admin\controller\Foo文件夾里的test類的index方法
還不存在 直接404
搞他個4-5個約定順序輪番找, 找到即可
可以的話,開發(fā)者可以自定義這個查找方式和順序 因為每個人都有一個想法
搞個啥通用的東西 讓我們約定一下 開發(fā),哈哈 老大 很喜歡webman,想用webman開發(fā)了 ,就是開發(fā)老遇到問題
你也說了,每個人可能都有自己的規(guī)則。任何項目都沒辦法滿足所有人的路由規(guī)則的。
現(xiàn)在webman默認路由規(guī)則見 http://www.wtbis.cn/doc/webman#/route 。 這個規(guī)則已經是最通用的規(guī)則了。
如果你有自己的路由規(guī)則,參考我上面給的代碼掃描app目錄按照自己的規(guī)則加路由就好了。
我在gitee和github翻了 大家都是直接搬了原版的webman上去 沒有開發(fā)好的項目 現(xiàn)在我自己做項目起來 感覺好吃力啊 遇到問題 我老問答里來問你 我也怕你煩人