When you start a new project (whether it's personal or professional) what do you have at hand to quickly start developing the project?
For example, when I start a new project at work, I have the following already setup from a custom sandbox:
- Two different authentication classes, LDAP and CAS which I can change via app.yml
- Custom form widgets which I use across most applications
- Capistrano deployment script for deploying the project to staging or production servers.
- A mail template class which uses an XML file for the templates to send emails
- Mail server, ldap etc. settings all configured.
- Bunch of icons and the same CSS (which with some exceptions is always the same for each project)
- custom error pages, layouts, login layout etc.
- static pages such as about, contact us etc.
- Useful plugins such as sfFormExtraPlugin, twig etc.
- jquery and jQuery UI libraries
- Basic local ACL and translation model classes and some other default models.
- Tasks - send email task and build translations.
- custom tools class for doing some custom stuff
- custom factories and some default routes
- helpers which I will most probably use are enabled by default (i18n, partial etc.)
And some other things :-)
I'm just wondering what you do to make your development quicker and more efficient when starting a new project. Hopefully I'll learn some new things from what you do.
Thanks folks!
Great question and great list. Here's some more:
- As a general practice, whenever we develop a feature that could be used across projects, we develop it as a plugin so it can be easily dropped into other projects.
- Custom form formatter that uses our own widget/validators in place of the default Symfony ones.
- Custom mailer with support for sending processing templates as emails and better HTML email support.
- Plugin for minimizing/combining CSS and JS assets.
- Symlink from web/sf to lib/vendor/symfony/data/web. Better than an alias in apache.
- Custom admin generator templates.