Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Perfect Neos Project Setup

The Perfect Neos Project Setup

There are many ways to start a new Neos-based project and there is a multitude of tools involved. These slides introduce a "perfect" way to set up a Neos project. A recording of the presentation is available at https://youtu.be/hWJSK0pE1H0

Karsten Dambekalns

April 13, 2018
Tweet

More Decks by Karsten Dambekalns

Other Decks in Programming

Transcript

  1. Disclaimer The term "best practice" along with "perfect" is very

    misleading. There is never the best solution, only a solution that is the best fit in a given situation. Keep your brain moving, question what you have and try something new every now and then. Take everything you are going to hear as something to think about, never as a rule. There is no silver bullet.
  2. Who do we want to reach? What are their goals?

    What do we need to make reaching those goals possible?
  3. Some truths Doing development in sprints is not SCRUM. Kanban

    does not magically finish your project. Not giving a fixed price (or even an estimate) to your client might be hard. But spending days or even weeks to come up with a plan that will inevitably change anyway would be waste.
  4. Think about Fusion. It seems intimidating at first, then you

    start to get the hang of it. And think "Ah, that's how it works!” Except it doesn’t. And then things start to feel awkward.
  5. Neos plugin by Christian Vette 
 https://github.com/cvette/intellij-neos Fluid plugin by

    Stefan Galinski https://www.sgalinski.de/typo3-produkte-webentwicklung/typo3-fluid-phpstorm-intellij/
  6. ZSH

  7. VCS

  8. Check security Consider using a service like Symfony Security Monitoring

    or implement something using the SensioLabs Security Checker or roave/security- advisories.
  9. Technologies like these can add a lot of value to

    a project and knowing them allows to apply them when needed.
  10. Running things locally For ages all I had was a

    local setup of Apache with mod_php and name- based virtual hosting, combined with dnsmasq.
  11. Must switch globally between PHP versions if needed, every project

    has the same environment (PHP modules, settings, …), specific tools a project needs would need to be installed on my machine, …
  12. With Docker every project can be run in an environment

    that can closely match the production environment.
  13. Repository of
 test/a Repository of
 test/b Repository of
 test/distribution Need

    to commit in three repositories Must update composer.lock after every change to test/a and test/b
  14. Repository of
 test/b Repository of
 test/distribution
 and test/a Need to

    commit in two repositories; must update composer.lock after every change to test/b
  15. Repository of
 test/distribution and test/a and test/b Need to commit

    in one repositories Must update composer.lock only after changes to dependencies in test/a or test/b
  16. • Use path repository for composer • Exclude source folder

    from IDE • Ignore Packages in VCS • Composer will “install” via symbolic links • Dependencies are resolved as expected • One repository to rule them all
  17. You have a managed server, but the hoster is inflexible.

    You must not change server settings yourself, but the admin is in a meeting. No access to log files, but the support sends the logs except the interesting line at the end. SSH is possible, but permissions don’t match. You need PHP 7, but are stuck at version 5.3, because of other customers on the same server. Every developer at some point in history