PHP, контроль версий и использование операторов - PullRequest
0 голосов
/ 17 ноября 2018

Можно ли использовать переменную в операторе использования?Как реализовать контроль версий с помощью признаков и других файлов, которые я определяю с помощью оператора use?

<?php
namespace SomeNamespace;

$vers = '10'; 

use SomeNamespace2\someTrait_$vers;
use SomeNamespace3\someTrait_$vers;

Я хотел бы иметь возможность назначать одну версию всем операторам использования.

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

@ Ответ Ника - хороший вариант. Но class_alias может быть лучше. (Или хуже, в зависимости от вашей ситуации или предпочтений ...) Что-то вроде:

class_alias("SomeNamespace2\\someTrait_$vers", 'SomeNamespace2\someTrait');

, а затем просто укажите SomeNamespace2\someTrait в оставшейся части кода.

0 голосов
/ 17 ноября 2018

Хотя PHP не поддерживает переменные в операторах use, вы можете преодолеть это, поместив свои операторы use (и другой код, зависящий от версии) в серию включаемых файлов (по одному для каждой версии), а затем используйтепеременная в операторе require (или include), чтобы включить нужный файл.Например:

use_10.php:

use SomeNamespace2\someTrait_10;
use SomeNamespace3\someTrait_10;

use_11.php:

use SomeNamespace2\someTrait_11;
use SomeNamespace3\someTrait_11;

Ваш основной код PHP:

$vers = 10;   // or 11, or any value for which you have created an include file
require_once "use_$vers.php";
...