typo3-extension-workshop/Documentation/source/StartNewExtension.rst

63 lines
1.5 KiB
ReStructuredText
Raw Normal View History

2018-08-13 12:25:20 +02:00
Start new extension
===================
Necessary files
---------------
2018-08-13 14:16:27 +02:00
The only necessary file is :file:`ext_emconf.php`. This configures the *Extension
Manager*. Without this file, the Extension Manager would not recognize the extension
and would prevent installation.
.. literalinclude:: ../../CodeExamples/localPackages/example_extension/ext_emconf.php
:language: php
See :ref:`t3coreapi:extension-declaration` in TYPO3 Core API Reference.
.. admonition:: Task
So let's create a new folder and add the file.
2018-08-13 12:25:20 +02:00
Install extension
-----------------
2018-08-13 14:16:27 +02:00
Once we have created the first extension, we need to install the extension. There are
two ways for a local extension. Either placing the extension inside the installation,
or via composer.
.. admonition:: Task
Install the new extension.
2018-08-13 12:25:20 +02:00
Oldschool
^^^^^^^^^
2018-08-13 14:16:27 +02:00
Copy the extension to :file:`typo3conf/ext/`, and head over to *Extension Manager* to
activate the extension.
Via Composer
^^^^^^^^^^^^
The following project setup is suggested:
.. code-block:: text
.
├── composer.json
└── localPackages
   └── example_extension
:file:`composer.json`:
.. literalinclude:: ../../CodeExamples/composer.json
:language: json
In this case, we also need a :file:`composer.json` inside our extension, to make the
extension an composer package and allow the installation:
:file:`composer.json`:
.. literalinclude:: ../../CodeExamples/localPackages/example_extension/composer.json
:language: json
Thanks due ``typo3-console/composer-auto-commands`` our extension is activated already.