有什么方法比将App \ Entity \用作E更好

时间:2018-08-19 17:53:44

标签: php namespaces entity

我想知道是否有一种方法可以一次加载所有实体而无需一次加载,因为对于像我这样拥有20多个实体的项目而言,事实证明这有点浪费时间来写所有的金额,甚至页面上需要的许多代码都太大了,无法声明。

例如,我文件的头看起来像这样:

<?php

    namespace App\DataFixtures;

    use App\Entity\Food;
    use App\Entity\Goal;
    use App\Entity\Loan;
    use App\Entity\Daily;
    use App\Entity\Health;
    use App\Entity\Monthly;
    use App\Entity\FoodType;
    use App\Entity\LoanType;
    use App\Entity\Reminder;
    use App\Entity\DailyType;
    use App\Entity\Medicines;
    use App\Entity\HealthType;
    use App\Entity\MonthlyType;
    use App\Entity\TuitionFees;
    use App\Entity\ReminderType;
    use App\Entity\MedicinesName;
    use App\Entity\ReceiveMonthly;
    use App\Entity\TuitionFeesType;
    use App\Entity\HouseholdExpenses;
    use App\Entity\ReceiveMonthlyType;
    use App\Entity\HouseholdExpensesType;

我想知道是否存在比这更好的方法:

<?php

    namespace App\DataFixtures;

    use App\Entity\ as E;



    $test = new E\Food();

2 个答案:

答案 0 :(得分:0)

这取决于。如果您使用的是PHP 7,则可以按照use some\namespace\{ClassA, ClassB, ClassC as C};的方式对use语句进行分组,否则答案是否定的,您描述的方法是唯一的方法

答案 1 :(得分:0)

您可以尝试以下操作:

<?php

namespace App\Entity;

class Food {
    public function hello() {
        print('Hello World!');
    }
}

function E($class, ...$params) {
    $class = 'App\\Entity\\' . $class;
    return new $class(...$params);
}

$food = E('Food');

$food->hello();