Как проверить, существует ли файл в make-файле

Я считаю, что то, что вы пытаетесь сделать, описано здесь:

Symfony + Doctrine - определите сообщение об ошибке при ошибке ограничения целостности

Я не буду копировать - вставьте сообщение целиком, но концепция состоит в том, чтобы создать onKernelResponse слушателя и прослушать PDOException. Как это сделать, есть много статей, я думаю, что вы можете легко найти в Интернете, я выбрал одну из первых, которые я нашел.

В этом Слушателе вы можете определить, что это за исключение, и использовать flashbag либо по умолчанию Symfony:

https://symfony.com/doc/current/components/http_foundation/sessions.html

$session->getFlashBag()->add('notice', 'Profile updated');

Или вы можете использовать Sonata Core Flashbag:

https://sonata-project.org/bundles/core/master /doc/reference/flash_messages.html

Чтобы использовать эту функцию в ваших классах / контроллерах PHP:

$flashManager = $this->get('sonata.core.flashmessage.manager');

$messages = $flashManager->get('success'); Кому используйте эту функцию в своих шаблонах, включите следующий шаблон (с необязательным параметром домена):

{% include '@SonataCore/FlashMessage/render.html.twig' %}

Примечание. При необходимости вы также можете указать домен перевода для переопределения конфигурации:

{% include '@SonataCore/FlashMessage/render.html.twig' with { domain: 'MyCustomBundle' } %}

blockquote>

Вы также можете взглянуть на эту статью https://tocacar.com/symfony2-how-to-modify-sonataadminbundles-error -message-on-entity-deletion-ca77cac343fa и переопределить CRUDController::deleteAction, чтобы вы могли обрабатывать такие ошибки.

И здесь вы можете найти код, немного связанный с вашей проблемой, на странице Sonata Admin GitHub https://github.com/sonata-project/SonataAdminBundle/issues/4485 , который он перехватывает. PDOException, так что также проверьте, какую версию вы используете, возможно, вам нужно обновление.

15
задан tvanfosson 30 October 2008 в 16:32
поделиться

3 ответа

Используйте "подстановочную" функцию:

$(wildcard *.h)

РЕДАКТИРОВАНИЕ: для соответствия определенному списку сделайте

$(wildcard $(HEADER_FILES))

нет никакой потребности использовать $ (фильтр...), подстановочная функция автоматически фильтрует файлы, которые не существуют.

19
ответ дан 1 December 2019 в 02:38
поделиться

Простые

$(filter $(wildcard *.h),$(HEADER_FILES))

делают то, что Вы хотите?

3
ответ дан 1 December 2019 в 02:38
поделиться

Вы не указывали, какой компилятор (компиляторы) Вы используете, но если у Вас есть доступ к gcc/g ++, можно использовать - опция MM.

То, что я делаю, создают файл с расширением.d для каждого.c или .cpp файл, и затем "включают".d файлы. Я использую что-то вроде этого в своем Make-файле:

%.d: %.c
        gcc $(INCS) $(CFLAGS) -MM $< -MF $@

%.d: %.cpp
        g++ $(INCS) $(CXXFLAGS) -MM $< -MF $@

Я затем создаю зависимости как это:

C_DEPS=$(C_SRCS:.c=.d)
CPP_DEPS=$(CPP_SRCS:.cpp=.d)
DEPS=$(C_DEPS) $(CPP_DEPS)

и это у основания Make-файла:

include $(DEPS)

Действительно ли это - вид поведения, для которого Вы идете? Красота этого метода состоит в том, что даже при использовании компилятора не-GNU для фактической компиляции компиляторы GNU делают хорошее задание вычисления зависимостей.

5
ответ дан 1 December 2019 в 02:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: