Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Bootcamp 4.1: The full-stack developer week

Five days that prepare developers to lead an Exponential project, installation and Git, content modeling, templates and designs, extensions and modules, operations and Velocity, with a site built across the week and…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/trainers/workshops/module-04-five-day-bootcamps/full-stack-developer-week.md

On this page

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

CourseWorkshops and bootcamps
ModuleModule 4: Five-day bootcamps
Duration5 days, 6 hours of sessions each
LevelIntermediate to advanced
AudiencePHP developers who will lead or build projects, 4 to 10 learners
PrerequisitesPHP, 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

DayMorning (3 h)Afternoon (3 h)Capstone step
1Install 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
2Template language, debugging (Templates and design)Designs, overrides, pagelayout (Template editor overrides)Full and line views of every class
3Extensions, RAD tools, autoloads (Extensions, RAD tools)Modules and views (Extension module override)The project's extension with one module view
4INI 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
5Tests and quality (Quality checks); deploying (Deploying)Code review of the capstones; presentations; next stepsReviewed 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.

  1. Classes: Talk (title, abstract, time, room, speaker relation), Speaker (name, bio, photo).
  2. Views: a schedule page listing talks by time; a speaker page listing their talks.
  3. Extension conference with the overrides, the design, a module view conference/schedule, and its settings.
  4. 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)

  1. Where does a project's code belong, and why?
  2. Which command deploys a PHP change under Velocity in one step?
  3. Name two places a setting's value can come from.
  4. Why prefer a relation attribute for the speaker of a talk?
Answers
  1. In the project's extensions and design, so updates of the kernel never overwrite it.
  2. php bin/php/console exp:velocity deploy (Serving the site, 8.3.14).
  3. For example the defaults, an extension, the siteaccess, the override directory (glossary: INI file).
  4. The speaker is content of its own; the relation keeps one speaker object for many talks.

Further reading

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.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x