src/AppBundle/Component/Export/Factory.php

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<?php

namespace AppBundle\Component\Export;

use Symfony\Component\DependencyInjection\ContainerInterface;

class Factory
{
    protected $container;

    public function __construct(ContainerInterface $container)
    {
        $this->container = $container;
    }

    /**
     * @param $name
     * @param $conditions
     *
     * @return Exporter
     */
    public function create($name, $conditions = array())
    {
        $export = $this->exportMap($name);

        return new $export($this->container, $conditions);
    }

    private function exportMap($name)
    {
        $map = array(
            'invite-records' => 'AppBundle\Component\Export\Invite\InviteRecordsExporter',
            'user-invite-records' => 'AppBundle\Component\Export\Invite\InviteUserRecordsExporter',
            'order' => 'AppBundle\Component\Export\Order\OrderExporter',
            'course-overview-student-list' => 'AppBundle\Component\Export\Course\OverviewStudentExporter',
            'course-overview-task-list' => 'AppBundle\Component\Export\Course\OverviewTaskExporter',
            'course-overview-normal-task-detail' => 'AppBundle\Component\Export\Course\OverviewNormalTaskDetailExporter',
            'course-overview-testpaper-task-detail' => 'AppBundle\Component\Export\Course\OverviewTestpaperTaskDetailExporter',
            'bill-cash-flow' => 'AppBundle\Component\Export\Bill\CashBillExporter',
            'bill-coin-flow' => 'AppBundle\Component\Export\Bill\CoinBillExporter',
            'user-learn-statistics' => 'AppBundle\Component\Export\UserLearnStatistics\UserLearnStatisticsExporter',
            'course-students' => 'AppBundle\Component\Export\Course\StudentExporter',
            'invoice-records' => 'InvoicePlugin\Component\Export\Invoice\InvoiceRecordsExporter',
        );

        $names = explode(':', $name);
        if (2 == count($names)) {
            $map = array_merge($map, $this->container->get($names[0].'_export_map')->getMap());
        }
        if (empty($map[$name])) {
            throw new \RuntimeException('exporter class could be found');
        }

        return $map[$name];
    }
}

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。