Concepten
Core en ext
Het framework en je applicatie: twee repositories, eerst in ext gezocht.
Een Nimbly-project combineert twee Git-repositories in één mappenstructuur: het framework, en je applicatie daarin.
my-project/ framework repository (core)
core/ routes, templates, libraries and modules of the framework
css/ js/ sources of the default asset build
ext/ your application, a repository of its own
data/ resources and records
lib/ PHP libraries
modules/ packaged features
tpl/ reusable templates
uri/ routes
static/ built assets and static files
theme.css your styles
| Repository | Bevat | Eigendom van |
|---|---|---|
| Framework | core/ en de gedeelde build-opzet |
Open source, ISC-licentie |
| Applicatie | ext/ |
Jou, onder de licentie die je kiest |
De repositories hebben elk hun eigen geschiedenis, branches en remotes. git status in de hoofdmap van het project toont wijzigingen aan het framework; git -C ext status toont de jouwe.
Eerst ext, dan core
Elke template, library, route, module en elk statisch bestand wordt eerst in ext/ gezocht, daarna in core/. Dat geeft je drie manieren om met het framework te werken:
- Toevoegen. Een nieuw bestand in
ext/staat naast het framework: een route, een template, een library, een veldtype. - Vervangen. Een bestand in
ext/met hetzelfde pad als een bestand incore/wordt in plaats daarvan gebruikt. Vervang één template van de pagina-shell, één adminscherm of één statisch bestand, en houd de rest. - Laten staan. Wat je project niet vervangt, komt uit core en wordt beter met elke update.
Bijvoorbeeld:
| Bestand in ext | Effect |
|---|---|
ext/tpl/html/stylesheets.tpl |
Je eigen stylesheets in elke pagina-shell |
ext/static/favicon.svg |
Je eigen icoon in plaats van het standaardicoon |
ext/uri/health/index.tpl |
Je eigen antwoord op de health check |
ext/agents/nimbly/project.md |
Context over de site voor de ingebouwde agent, die zijn core-definitie houdt |
Core zelf wordt nooit aangepast voor één project. Een wijziging die elke Nimbly-applicatie nodig heeft, hoort in het framework; een wijziging voor één applicatie hoort in ext/.
Updates
Een project draait de actuele core: er zijn geen frameworkversies om vast te zetten, de commit is de versie. Pull core om bij te werken; je ext/ blijft onaangeroerd. Een core-update herschrijft nooit gegenereerde bestanden zoals .htaccess, dus ./nimbly system:repair meldt waar een oudere site afwijkt van een nieuwe installatie, en past de wijzigingen toe met --yes. Zie Updates.
Verder lezen
- Levensloop van een request: hoe een request zijn route vindt.
- Je eigen HTML: de pagina-shell deels of helemaal vervangen.
- Modules: een feature verpakken binnen
ext/.