【问题标题】:What is the best way to model the business logic in Silex?在 Silex 中建模业务逻辑的最佳方法是什么?
【发布时间】:2012-11-05 12:20:38
【问题描述】:

我不确定我是否了解 Silex 的整体概念,将“业务逻辑”存储在与持久性、视图等没有直接关系的位置。

示例:在我的“演示应用”中,我需要一种方法来生成 n 个唯一数字。我需要模板中的这些数字来包含部分模板。我创建了一个 RandomNumberServiceProvider,它可以返回 x 和 y 之间的 n 个数字。在我的 $app-closure 中,我使用了这项服务,将随机数分配给我的树枝模板。完成。

更复杂的示例:假设您必须开发一个“复杂”的导入功能。您必须从磁盘读取数据,验证数据,以某种方式对其进行转换,最后将其存储到数据库中。在这种情况下,您是否还会创建一个 ImportServiceProvider 来访问其他服务(用于持久性......)?

【问题讨论】:

    标签: php model-view-controller soa silex


    【解决方案1】:

    类似的,是的。

    不过,我建议只注入工厂,而不是注入完整的服务。这样,您可以防止应用程序逻辑在控制器(或它们的等价物)中泄漏,同时保持域对象专注于特定任务。

    $factory = new \My\ServiceFactory( /* ..dependencies */ );
    
    // --- SNIP
    
    $app->get('/foo/{bar}', function ($app, $bar) use ($factory) {
    
        $someService = $factory->build( ... );
        // do something with $someService
    
        return new Response(...);
    });
    

    【讨论】:

      猜你喜欢
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-21
      • 1970-01-01
      • 2011-03-17
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多