Laravel 请问一下怎么加载某一个目录下的文件并且 App::bind ()


        App::bind("TaskScript/SignInActivity", function ($app) {
            return new SignInActivity();
        });
        App::bind("TaskScript/OnlineDurationActivity", function ($app) {
            return new OnlineDurationActivity();
        });
        App::bind("TaskScript/FollowMemberActivity", function ($app) {
            return new FollowMemberActivity();
        });
        App::bind("TaskScript/FirstGiftActivity", function ($app) {
            return new FirstGiftActivity();
        });
        App::bind("TaskScript/FirstRechargeActivity", function ($app) {
            return new FirstRechargeActivity();
        });
        App::bind("TaskScript/FirstSendDynamicActivity", function ($app) {
            return new FirstSendDynamicActivity();
        });
        App::bind("TaskScript/RealnameActivity", function ($app) {
            return new RealnameActivity();
        });
        App::bind("TaskScript/MakeFriendActivity", function ($app) {
            return new MakeFriendActivity();
        });
        App::bind("TaskScript/RechargeActivity", function ($app) {
            return new RechargeActivity();
        });
        App::bind("TaskScript/WinTheGameActivity", function ($app) {
            return new WinTheGameActivity();
        });
        App::bind("TaskScript/GoodActivity", function ($app) {
            return new GoodActivity();
        });
        App::bind("TaskScript/MakeGiftActivity", function ($app) {
            return new MakeGiftActivity();
        });
        App::bind("TaskScript/FirstReceptionActivity", function ($app) {
            return new FirstReceptionActivity();
        });

如何优雅的优化上面的代码~

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案
TaskScript::make($class);
class TaskScript
{
    static public function make($class)
    {

        if (file_exists($class) && class_exists($class)) {
            return new $class();
        }

        throw new \InvalidArgumentException("Invalid Class %s", $class);

    }
}
3年前 评论
vinhson (作者) 3年前
Chenhappy (楼主) 3年前
vinhson (作者) 3年前
Chenhappy (楼主) 3年前
Chenhappy (楼主) 3年前
Chenhappy (楼主) 3年前
Chenhappy (楼主) 3年前
讨论数量: 3
TaskScript::make($class);
class TaskScript
{
    static public function make($class)
    {

        if (file_exists($class) && class_exists($class)) {
            return new $class();
        }

        throw new \InvalidArgumentException("Invalid Class %s", $class);

    }
}
3年前 评论
vinhson (作者) 3年前
Chenhappy (楼主) 3年前
vinhson (作者) 3年前
Chenhappy (楼主) 3年前
Chenhappy (楼主) 3年前
Chenhappy (楼主) 3年前
Chenhappy (楼主) 3年前
        foreach (glob(app_path('Action/TaskScript') . '/*.php') as $file) {
            $TaskScripts [] = pathinfo($file)['filename'];
            require_once $file;
        }

       foreach ($TaskScripts as $v){
            App::bind("TaskScript/{$v}",function ($app) use ($v){
                return "$v";
            });
        }

这样子加载进去...new的时候就报错了.

Class 'GoodActivity' not found
3年前 评论
class TaskScript
{
    static public function init(){

    }
    static public function make($class)
    {
        $class = "App\\Action\\TaskScript\\$class";
        return new $class();
    }
}
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!