Bootcamp 4.1: The full-stack developer week
A week is enough to take developers from their first install to a reviewed, deployable site with an extension of their own. Each day ends with the capstone a step further; day 5 is review, tests and deployment.
At a glance
| Course | Workshops and bootcamps |
| Module | Module 4: Five-day bootcamps |
| Duration | 5 days, 6 hours of sessions each |
| Level | Intermediate to advanced |
| Audience | PHP developers who will lead or build projects, 4 to 10 learners |
| Prerequisites | PHP, Git, Composer; a GitHub account |
Learning objectives
At the end of the week, learners can:
- set up, update and deploy an installation built from Git clones;
- model content for a real brief and build it as classes;
- write a design with templates, overrides and stylesheets through the packer;
- write an extension with a module view, settings and a template operator, and test it;
- run the site under Velocity and deploy a change safely.
The agenda
| Day | Morning (3 h) | Afternoon (3 h) | Capstone step |
|---|---|---|---|
| 1 | Install from Git, update routine (Develop with Git, Update with Git) | Core concepts and content modeling (The content model and editing content) | The brief turned into classes |
| 2 | Template language, debugging (Templates and design) | Designs, overrides, pagelayout (Template editor overrides) | Full and line views of every class |
| 3 | Extensions, RAD tools, autoloads (Extensions, RAD tools) | Modules and views (Extension module override) | The project's extension with one module view |
| 4 | INI and siteaccesses (exp:ini, Multi-site INI overrides), REST (REST API v1 and v2) | Operations: caches, cronjobs, Velocity (Serving the site) | Settings in the extension; served by Velocity |
| 5 | Tests and quality (Quality checks); deploying (Deploying) | Code review of the capstones; presentations; next steps | Reviewed and deployed |
Breaks: 15 minutes mid-morning and mid-afternoon, 45 minutes lunch, each day.
Trainer's notes
- One brief for the whole week, for example a club, a small conference or a library.
- Code review on day 5: pairs review each other's extension against the coding standards.
- Keep the kernel untouched: all project code in the extension and the design.
Hands-on exercise: the week's capstone
Brief: a small conference site with talks, speakers and a schedule.
- Classes: Talk (title, abstract, time, room, speaker relation), Speaker (name, bio, photo).
- Views: a schedule page listing talks by time; a speaker page listing their talks.
- Extension
conferencewith the overrides, the design, a module viewconference/schedule, and its settings. - Served under Velocity; a change deployed with
php bin/php/console exp:velocity deploy.
Expected result
- The schedule and speaker pages work from the extension, with no file changed outside it except the activation.
- The deploy runs without errors and the change is visible.
- Each team presents and gets a review.
Quiz (end of week)
- Where does a project's code belong, and why?
- Which command deploys a PHP change under Velocity in one step?
- Name two places a setting's value can come from.
- Why prefer a relation attribute for the speaker of a talk?
Answers
- In the project's extensions and design, so updates of the kernel never overwrite it.
php bin/php/console exp:velocity deploy(Serving the site, 8.3.14).- For example the defaults, an extension, the siteaccess, the override directory (glossary: INI file).
- The speaker is content of its own; the relation keeps one speaker object for many talks.
Further reading
Related pages
- Module 4: Five-day bootcamps
- Workshops and bootcamps: course overview
- Trainers: start here
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.