Я решил свою проблему такого же типа. Первый параметр определяет исходное имя класса, а второй параметр определяет новое имя класса функции class_alias. Тогда мы можем использовать эту функцию в условиях if и else.
if(1==1){
class_alias('A', 'C');
}
else{
class_alias('B', 'C');
}
class Apple extends C{
...
}
Класс Apple распространяется на виртуальный класс «C», который может быть определен как класс «A» или «B» в зависимости от условия if и else.
Для получения дополнительной информации вы можете проверить эту ссылку https://www.php.net/manual/en/function.class-alias.php
Возможно, вам действительно будет лучше вручную поддерживать gitignore. Вы можете сделать это:
*
!*.*
, чтобы исключить все, затем включить все с ".", Но я подозреваю, что ваши каталоги не имеют расширений. Конечно, отслеживаемые в настоящее время каталоги все равно будут отслеживаться, но если вы добавите новый, git-status
не увидит его, и вам придется использовать add -f
Наверное, нехорошо предполагать, что все файлы без расширений в любом случае не должны отслеживаться. Вы можете получить некоторые из них естественным образом - например, README и INSTALL довольно распространены. Гораздо хуже случайно проигнорировать файл, чем также изменить gitignore. Изменение gitignore может занять несколько секунд, но когда вам это понадобится, это будет очевидно.
Обычно я справляюсь с этим с помощью хаков с make-файлами. В моем Makefile у меня есть имя исполняемого файла $ (name), а затем я делаю следующее:
#first rule
all: gitignoreadd ... more depends
... some commands ...
gitignoreadd:
grep -v "$(name)" .gitignore > temp
echo $(name) >> temp
mv temp .gitignore
gitignoreremove:
grep -v "$(name)" .gitignore > temp
mv temp .gitignore
Это правило может быть просто зависимостью от make где-то подходящего. Тогда у вас обычно есть следующее правило «очистить»:
clean: gitignoreremove
rm *.o *.othergarbagefiles $(name)
Это должно помочь. Это хак, но у меня он работает. Единственное, что вы должны запустить make clean перед изменением имени, чтобы автоматически все очистить.