diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/AbstractProjectDumbAwareAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/AbstractProjectDumbAwareAction.java index ecdf8495a..14a8fe7fa 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/AbstractProjectDumbAwareAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/AbstractProjectDumbAwareAction.java @@ -24,10 +24,12 @@ public AbstractProjectDumbAwareAction(String text, String description, Icon phpF super(text, description, phpFile); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { + setStatus(event, false); + Project project = event.getData(PlatformDataKeys.PROJECT); - if (project == null || !Symfony2ProjectComponent.isEnabled(project)) { - setStatus(event, false); + if (Symfony2ProjectComponent.isEnabled(project)) { + setStatus(event, true); } } @@ -35,6 +37,4 @@ protected void setStatus(AnActionEvent event, boolean status) { event.getPresentation().setVisible(status); event.getPresentation().setEnabled(status); } - - } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCommandAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCommandAction.java index 05ff8628b..4ee647246 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCommandAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCommandAction.java @@ -27,7 +27,7 @@ public NewCommandAction() { super("Command", "Create Command Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -96,7 +96,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewCommandAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { return; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCompilerPassAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCompilerPassAction.java index ad112b6e0..0ca2bad32 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCompilerPassAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewCompilerPassAction.java @@ -27,7 +27,7 @@ public NewCompilerPassAction() { super("CompilerPass", "Create CompilerPass Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -83,7 +83,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewCompilerPassAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { return; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewControllerAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewControllerAction.java index d8cf77669..0ee70e7a4 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewControllerAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewControllerAction.java @@ -27,7 +27,7 @@ public NewControllerAction() { super("Controller", "Create Controller Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -95,7 +95,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewControllerAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { return; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFileActionUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFileActionUtil.java index 1f2464682..6a9bfe5dc 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFileActionUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFileActionUtil.java @@ -5,6 +5,7 @@ import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.io.StreamUtil; import com.intellij.psi.PsiDirectory; import com.jetbrains.php.roots.PhpNamespaceCompositeProvider; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; @@ -13,8 +14,11 @@ import fr.adrienbrault.idea.symfony2plugin.util.SymfonyCommandUtil; import fr.adrienbrault.idea.symfony2plugin.util.dict.SymfonyBundle; import fr.adrienbrault.idea.symfony2plugin.util.dict.SymfonyCommand; +import fr.adrienbrault.idea.symfony2plugin.util.psi.PhpBundleFileFactory; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import java.io.IOException; import java.util.*; /** @@ -133,4 +137,15 @@ public static String getCommandPrefix(@NotNull PsiDirectory psiDirectory) { return "app"; } + + + @Nullable + public static String getFileTemplateContent(@NotNull String filename) { + try { + // replace on windows, just for secure reasons + return StreamUtil.readText(PhpBundleFileFactory.class.getResourceAsStream(filename), "UTF-8").replace("\r\n", "\n"); + } catch (IOException e) { + return null; + } + } } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFormTypeAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFormTypeAction.java index cb076125c..059ca023b 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFormTypeAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewFormTypeAction.java @@ -27,7 +27,7 @@ public NewFormTypeAction() { super("Form", "Create FormType Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -83,7 +83,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewFormTypeAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { return; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewKernelTestCaseAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewKernelTestCaseAction.java index 20ed3bde2..f7b229ab7 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewKernelTestCaseAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewKernelTestCaseAction.java @@ -28,7 +28,7 @@ public NewKernelTestCaseAction() { super("KernelTestCase", "Create KernelTestCase Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -89,7 +89,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewKernelTestCaseAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewPhpServiceAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewPhpServiceAction.java new file mode 100644 index 000000000..15abd3987 --- /dev/null +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewPhpServiceAction.java @@ -0,0 +1,22 @@ +package fr.adrienbrault.idea.symfony2plugin.action; + +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.project.Project; +import com.jetbrains.php.PhpIcons; + +/** + * @author Daniel Espendiller + */ +public class NewPhpServiceAction extends AbstractProjectDumbAwareAction { + + public NewPhpServiceAction() { + super("PHP Service", "Create new PHP File", PhpIcons.PHP_FILE); + } + + @Override + public void actionPerformed(AnActionEvent event) { + final Project project = event.getData(PlatformDataKeys.PROJECT); + ServiceActionUtil.buildFile(event, project, "/fileTemplates/container.php"); + } +} diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewTwigExtensionAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewTwigExtensionAction.java index 52c4708ba..77bc897dc 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewTwigExtensionAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewTwigExtensionAction.java @@ -27,7 +27,7 @@ public NewTwigExtensionAction() { super("TwigExtension", "Create TwigExtension Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -83,7 +83,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewTwigExtensionAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { return; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewWebTestCaseAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewWebTestCaseAction.java index 0410d5352..a8c88458a 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewWebTestCaseAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewWebTestCaseAction.java @@ -28,7 +28,7 @@ public NewWebTestCaseAction() { super("WebTestCase", "Create WebTestCase Class", Symfony2Icons.SYMFONY); } - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { @@ -89,7 +89,7 @@ public void actionPerformed(@NotNull AnActionEvent event) { public static class Shortcut extends NewWebTestCaseAction { @Override - public void update(AnActionEvent event) { + public void update(@NotNull AnActionEvent event) { this.setStatus(event, false); Project project = getEventProject(event); if (!Symfony2ProjectComponent.isEnabled(project)) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewXmlServiceAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewXmlServiceAction.java index 1eb6cebe2..a707688ec 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewXmlServiceAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewXmlServiceAction.java @@ -19,6 +19,4 @@ public void actionPerformed(AnActionEvent event) { final Project project = event.getData(PlatformDataKeys.PROJECT); ServiceActionUtil.buildFile(event, project, "/fileTemplates/container.xml"); } - - } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewYamlServiceAction.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewYamlServiceAction.java index 0718f69dd..a9ba36361 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewYamlServiceAction.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/NewYamlServiceAction.java @@ -19,5 +19,4 @@ public void actionPerformed(AnActionEvent event) { final Project project = event.getData(PlatformDataKeys.PROJECT); ServiceActionUtil.buildFile(event, project, "/fileTemplates/container.yml"); } - } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java index 0dae8bf7e..bfd7e099b 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ServiceActionUtil.java @@ -1,20 +1,17 @@ package fr.adrienbrault.idea.symfony2plugin.action; -import com.intellij.ide.IdeView; -import com.intellij.ide.highlighter.XmlFileType; import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.DataContext; -import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.fileTypes.FileType; +import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; -import com.intellij.openapi.util.io.StreamUtil; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; +import com.intellij.psi.impl.file.PsiDirectoryFactory; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.XmlTag; +import com.jetbrains.php.lang.PhpFileType; import com.jetbrains.php.lang.psi.elements.Method; import com.jetbrains.php.lang.psi.elements.Parameter; import com.jetbrains.php.lang.psi.elements.PhpClass; @@ -28,17 +25,14 @@ import fr.adrienbrault.idea.symfony2plugin.intentions.yaml.dict.YamlUpdateArgumentServicesCallback; import fr.adrienbrault.idea.symfony2plugin.stubs.ContainerCollectionResolver; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; -import fr.adrienbrault.idea.symfony2plugin.util.SymfonyBundleUtil; import fr.adrienbrault.idea.symfony2plugin.util.dict.ServiceUtil; -import fr.adrienbrault.idea.symfony2plugin.util.dict.SymfonyBundle; +import fr.adrienbrault.idea.symfony2plugin.util.psi.PhpBundleFileFactory; import fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.yaml.YAMLFileType; import org.jetbrains.yaml.psi.*; -import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -58,79 +52,44 @@ private static String[] getInvalidArgumentAttributes() { .toArray(String[]::new); } - public static void buildFile(AnActionEvent event, final Project project, String templatePath) { - String extension = (templatePath.endsWith(".yml") || templatePath.endsWith(".yaml")) ? "yml" : "xml" ; + public static void buildFile(@NotNull AnActionEvent event, @NotNull Project project, @NotNull String templatePath) { + String extension; - String fileName = Messages.showInputDialog(project, "File name (without extension)", String.format("Create %s Service", extension), Symfony2Icons.SYMFONY); - if(fileName == null || StringUtils.isBlank(fileName)) { - return; - } - - FileType fileType = (templatePath.endsWith(".yml") || templatePath.endsWith(".yaml")) ? YAMLFileType.YML : XmlFileType.INSTANCE ; - - if(!fileName.endsWith("." + extension)) { - fileName = fileName.concat("." + extension); - } - - DataContext dataContext = event.getDataContext(); - IdeView view = LangDataKeys.IDE_VIEW.getData(dataContext); - if (view == null) { - return; + if ((templatePath.endsWith(".yml") || templatePath.endsWith(".yaml"))) { + extension = "yaml"; + } else if (templatePath.endsWith(".xml")) { + extension = "xml"; + } else if (templatePath.endsWith(".php")) { + extension = "php"; + } else { + throw new RuntimeException("no valid extension for: " + templatePath); } - PsiDirectory[] directories = view.getDirectories(); - if(directories.length == 0) { + String fileName = Messages.showInputDialog(project, "File name (without extension)", String.format("Create %s Service", extension), Symfony2Icons.SYMFONY); + if(fileName == null || StringUtils.isBlank(fileName)) { return; } - final PsiDirectory initialBaseDir = directories[0]; - if (initialBaseDir == null) { + final PsiDirectory parentDirectory = NewFileActionUtil.getSelectedDirectoryFromAction(event); + if (parentDirectory == null) { return; } - if(initialBaseDir.findFile(fileName) != null) { + if(parentDirectory.findFile(fileName) != null) { Messages.showInfoMessage("File exists", "Error"); return; } - String content; - try { - content = StreamUtil.readText(ServiceActionUtil.class.getResourceAsStream(templatePath), "UTF-8").replace("\r\n", "\n"); - } catch (IOException e) { - e.printStackTrace(); - return; - } - - final PsiFileFactory factory = PsiFileFactory.getInstance(project); - - String bundleName = "Acme\\DemoBundle"; - - SymfonyBundleUtil symfonyBundleUtil = new SymfonyBundleUtil(project); - SymfonyBundle symfonyBundle = symfonyBundleUtil.getContainingBundle(initialBaseDir); - - if(symfonyBundle != null) { - bundleName = StringUtils.strip(symfonyBundle.getNamespaceName(), "\\"); - } - - String underscoreBundle = bundleName.replace("\\", ".").toLowerCase(); - if(underscoreBundle.endsWith("bundle")) { - underscoreBundle = underscoreBundle.substring(0, underscoreBundle.length() - 6); - } - - content = content.replace("{{ BundleName }}", bundleName).replace("{{ BundleNameUnderscore }}", underscoreBundle); - - final PsiFile file = factory.createFileFromText(fileName, fileType, content); - ApplicationManager.getApplication().runWriteAction(() -> { - CodeStyleManager.getInstance(project).reformat(file); - initialBaseDir.add(file); - }); + PsiFile fileFromText = PsiFileFactory.getInstance(project).createFileFromText("services." + extension, PhpFileType.INSTANCE, NewFileActionUtil.getFileTemplateContent(templatePath)); - PsiFile psiFile = initialBaseDir.findFile(fileName); - if(psiFile != null) { - view.selectElement(psiFile); - } + if (extension.equals("php")) { + CodeStyleManager.getInstance(project).reformat(fileFromText); + } + PsiElement newFile = PsiDirectoryFactory.getInstance(project).createDirectory(parentDirectory.getVirtualFile()).add(fileFromText); + new OpenFileDescriptor(project, newFile.getContainingFile().getVirtualFile(), 0).navigate(true); + }); } @NotNull diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/psi/PhpBundleFileFactory.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/psi/PhpBundleFileFactory.java index 1b5d788ca..bc692f0ce 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/psi/PhpBundleFileFactory.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/util/psi/PhpBundleFileFactory.java @@ -21,6 +21,7 @@ import com.jetbrains.php.refactoring.PhpAliasImporter; import com.jetbrains.php.refactoring.PhpNameUtil; import fr.adrienbrault.idea.symfony2plugin.Symfony2Icons; +import fr.adrienbrault.idea.symfony2plugin.action.NewFileActionUtil; import fr.adrienbrault.idea.symfony2plugin.util.IdeHelper; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; import org.apache.commons.lang3.StringUtils; @@ -70,7 +71,7 @@ public static PsiElement createBundleFile(@NotNull PhpClass bundleClass, @NotNul } String COMPILER_TEMPLATE = "/fileTemplates/" + template + ".php"; - String fileTemplateContent = getFileTemplateContent(COMPILER_TEMPLATE); + String fileTemplateContent = NewFileActionUtil.getFileTemplateContent(COMPILER_TEMPLATE); if(fileTemplateContent == null) { throw new Exception("Template content error"); } @@ -99,7 +100,7 @@ public static PsiElement createBundleFile(@NotNull PhpClass bundleClass, @NotNul public static PsiElement createFile(@NotNull Project project, @NotNull VirtualFile parentDirectory, @NotNull String template, @NotNull String filename, @NotNull Map vars) { String COMPILER_TEMPLATE = "/fileTemplates/" + template + ".php"; - String fileTemplateContent = getFileTemplateContent(COMPILER_TEMPLATE); + String fileTemplateContent = NewFileActionUtil.getFileTemplateContent(COMPILER_TEMPLATE); if(fileTemplateContent == null) { throw new RuntimeException("Template content error"); } @@ -171,7 +172,7 @@ public static PsiElement createCompilerPass(@NotNull PhpClass bundleClass, @NotN } String COMPILER_TEMPLATE = "/fileTemplates/compiler_pass.php"; - String fileTemplateContent = getFileTemplateContent(COMPILER_TEMPLATE); + String fileTemplateContent = NewFileActionUtil.getFileTemplateContent(COMPILER_TEMPLATE); if(fileTemplateContent == null) { throw new Exception("Template content error"); } @@ -264,14 +265,4 @@ private static VirtualFile getAndCreateCompilerDirectory(@NotNull VirtualFile di return null; } - @Nullable - private static String getFileTemplateContent(@NotNull String filename) { - try { - // replace on windows, just for secure reasons - return StreamUtil.readText(PhpBundleFileFactory.class.getResourceAsStream(filename), "UTF-8").replace("\r\n", "\n"); - } catch (IOException e) { - return null; - } - } - } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index d5f2f463c..80a727059 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -788,8 +788,9 @@ - - + + + diff --git a/src/main/resources/fileTemplates/container.php b/src/main/resources/fileTemplates/container.php new file mode 100644 index 000000000..24e08e628 --- /dev/null +++ b/src/main/resources/fileTemplates/container.php @@ -0,0 +1,31 @@ +services() + ->defaults() + ->autowire() // Automatically injects dependencies in your services. + ->autoconfigure() // Automatically registers your services as commands, event subscribers, etc. + ; + + /* Bind example + $services = $container->services() + ->defaults() + // pass this value to any $adminEmail argument for any service + // that's defined in this file (including controller arguments) + ->bind('$projectDir', '%kernel.project_dir%') + ; + */ + + // makes classes in src/ available to be used as services + // this creates a service per class whose id is the fully-qualified class name + $services->load('App\\', '../src/') + ->exclude('../src/{DependencyInjection,Entity,Kernel.php}'); + + // order is important in this file because service definitions + // always *replace* previous ones; add your own service configuration below +}; \ No newline at end of file diff --git a/src/main/resources/fileTemplates/container.xml b/src/main/resources/fileTemplates/container.xml index 6200f9165..c92406fd6 100644 --- a/src/main/resources/fileTemplates/container.xml +++ b/src/main/resources/fileTemplates/container.xml @@ -1,25 +1,27 @@ - - + - - + + + + + + + + + + + + - --> \ No newline at end of file diff --git a/src/main/resources/fileTemplates/container.yml b/src/main/resources/fileTemplates/container.yml index 665c5549c..c05070c62 100644 --- a/src/main/resources/fileTemplates/container.yml +++ b/src/main/resources/fileTemplates/container.yml @@ -1,9 +1,19 @@ services: -# {{ BundleNameUnderscore }}.example: -# class: {{ BundleName }}\Example -# arguments: ["@service_id", "plain_value", "%parameter%"] -# calls: -# - [setService, ["@service_id"]] -# tags: -# - { name: twig.extension } -# - { name: kernel.event_listener, event: kernel.exception, method: onKernelException } + # default configuration for services in *this* file + _defaults: + autowire: true # Automatically injects dependencies in your services. + autoconfigure: true # Automatically registers your services as commands, event subscribers, etc. + # bind: + # $projectDir: '%kernel.project_dir%' + + # makes classes in src/ available to be used as services + # this creates a service per class whose id is the fully-qualified class name + App\: + resource: '../src/' + exclude: + - '../src/DependencyInjection/' + - '../src/Entity/' + - '../src/Kernel.php' + + # order is important in this file because service definitions + # always *replace* previous ones; add your own service configuration below