PHP compatibility and project lifecycle
Unknown from the supplied source. The packet is only a documentation index and states no Nette versions or PHP compatibility. The learning track uses PHP 8.4 with 8.5 planned; verify Nette's supported PHP versions on its Maintenance and PHP Versions page.
Official sources checked 2026-10-22. Browser lessons on this site run PHP 8.5.
The only evidence supplied is the English documentation landing page of Nette, which is essentially a table of contents. Page bodies were not included, so this guide is deliberately cautious.
What Nette is
The documentation index presents Nette as a full-stack PHP framework. Its navigation groups material into four areas: an introduction (why use Nette, installation, a short OOP primer, a first application), general project information (package list, maintenance and PHP versions, release notes, upgrade guide, troubleshooting, history, contributing), the Nette Application layer, and a set of main topics and utilities.
Nette is a framework that runs on PHP. It is not a PHP runtime, an interpreter, an async library or a server adapter. It is also not a CMS product. PHP core is the language engine and its standard extensions. Nette is userland code that you load on top of it. A CMS such as Drupal is a finished content-management product with its own content model and administration. Nette's index lists a package list and a framework-style set of topics, not an editorial back end. Swoole and Open Swoole are separate projects, and the supplied source does not mention either, so nothing here assumes Nette integrates with them.
Architecture, as far as the index shows
The Nette Application section lists these pages: how applications work, bootstrapping, presenters, templates, directory structure, routing, creating URL links, interactive components, AJAX and snippets, and the component model. From the titles alone you can infer an application organized around presenters, templates and routing, with a component model for reusable interface parts. The exact responsibilities and APIs are described on those pages, which were not supplied, so read them before relying on this inference.
The main topics cover configuration, dependency injection, Latte (templates), Tracy (a debugging tool), forms, database, authenticating users, access control, a security-focused page, sessions, HTTP request and response, assets, caching, sending email, Schema (data validation), a PHP code generator, Tester (unit testing) and command line. The utilities section lists helpers for arrays, filesystem, processes, finding files, HTML elements, images, JSON, NEON, password hashing, PHP types, strings, validators, RobotLoader, SmartObject and StaticClass, and SafeStream.
The breadth shows that Nette is a family of packages. Treat the package list page as the authority on what is a separable component and what is part of the application skeleton.
Execution model
The source has a page titled how applications work and one on bootstrapping, but their contents are unknown here. In general, a classic PHP request lifetime starts the application, handles one request and discards memory when the request ends. A persistent worker keeps the process alive and handles many requests. Whether and how Nette supports persistent workers is unknown from the supplied evidence, so do not assume it. Verify it in the official documentation first.
State leakage and cleanup
If you ever run any framework in a persistent worker, state can leak between requests. Typical sources are static properties, singletons or services that cache the current user, request data held in long-lived objects, open database transactions, session data, output buffers and temporary files. One user's data could then appear in another user's response.
Cleanup means resetting or recreating request-scoped objects after every request, clearing static caches you own, closing transactions and files, and restarting workers periodically. Under a classic request lifetime, most of this is handled for you because the process ends. The index lists sessions, caching and dependency injection pages, which is where to look for how state is scoped in Nette.
Practical use cases
Based on the topic list, Nette suits server-rendered web applications with forms, templates, authentication and access control. It also suits applications that use interactive components with AJAX snippets, and projects that need command-line entry points, caching, email and unit testing through Tester. Whether it is the right fit for your project depends on details not in the supplied source.
Installation approach
The index has an Installation page, but the exact commands are not in the supplied packet, so this guide does not invent them. Follow that page. Before choosing a PHP version, open the Maintenance and PHP Versions page and the Release Notes. This learning track uses PHP 8.4, with PHP 8.5 planned. Nette's compatibility with either version is unknown from the supplied source, so confirm it there. Treat runtime PHP and Composer-based projects as requiring a local terminal and network access. They are not browser exercises.
Strengths
- A wide, integrated set of topics, from routing and templates to forms, security and testing, in one documentation tree.
- Named tooling for debugging (Tracy), templating (Latte) and testing (Tester).
- Documentation that includes a troubleshooting page, an upgrade guide and an API reference.
- A security-focused page in the main topics.
These are observations about documentation coverage, not performance or quality claims.
Limitations and unknowns
- Current version, supported PHP versions, deprecations, support status, license and any prices are unknown from the supplied evidence. Lifecycle is recorded as unknown.
- Persistent-worker support is unknown.
- Page-level details are missing, so any API names, directory layouts and configuration formats must come from the official pages.
- Nette is not a CMS. If you need ready-made content administration, you would be choosing a different kind of product.
Deployment
The source gives no deployment instructions. The directory structure page is the likely place to learn which directories should be web-accessible, so read it before deploying. As general safe practice, publish only the intended public directory, keep configuration and secrets out of version control, and never expose FastCGI to the public network. If you run a development server, bind it to 127.0.0.1. Check Tracy's documentation for how debugging output should be handled outside development.
Example in this guide
Because the supplied source has no installation commands or code samples, the example is a small local study-plan checker rather than a Nette application. It verifies that your PHP CLI is 8.4 and prints the documentation sections to read, in order. It installs nothing and does not use any Nette API.
Next steps
Open the official documentation, read the installation, maintenance and PHP versions pages, and record the real versions and compatibility in your own notes. Then work through bootstrapping, presenters, templates and routing in order.
Practical examples
These examples have not been run in a live environment yet. Commands and versions follow the official documentation linked on this page; check them before relying on them, and report a problem if one does not work.
Nette documentation study-plan checker (PHP 8.4 CLI)
A local CLI script that checks for PHP 8.4 and prints Nette documentation sections to read, taken from the official documentation index. It does not install or use Nette, so it needs no Composer or network services. It is not a browser exercise.
nette-study/topics.json
[
{"order": 1, "section": "Introduction", "page": "Installation"},
{"order": 2, "section": "General", "page": "Maintenance and PHP Versions"},
{"order": 3, "section": "Nette Application", "page": "How do Applications Work?"},
{"order": 4, "section": "Nette Application", "page": "Bootstrapping"},
{"order": 5, "section": "Nette Application", "page": "Presenters"},
{"order": 6, "section": "Nette Application", "page": "Templates"},
{"order": 7, "section": "Nette Application", "page": "Routing"},
{"order": 8, "section": "Main Topics", "page": "Dependency Injection"},
{"order": 9, "section": "Main Topics", "page": "Sessions"},
{"order": 10, "section": "Main Topics", "page": "Security First"}
]
nette-study/preflight.php
declare(strict_types=1);
$topicsFile = __DIR__ . '/topics.json';
if (PHP_VERSION_ID < 80400 || PHP_VERSION_ID >= 80500) {
fwrite(STDERR, 'This learning track targets PHP 8.4. Found ' . PHP_VERSION . PHP_EOL);
exit(1);
}
$topics = json_decode(
file_get_contents($topicsFile),
true,
512,
JSON_THROW_ON_ERROR
);
echo 'PHP ' . PHP_VERSION . ' detected.' . PHP_EOL;
echo 'Source: https://doc.nette.org/en/' . PHP_EOL;
echo 'Nette version and PHP compatibility: unknown, verify in the official docs.' . PHP_EOL . PHP_EOL;
foreach ($topics as $topic) {
printf(
"%2d. [%s] %s\n",
$topic['order'],
$topic['section'],
$topic['page']
);
}
Install and run
cd nette-study
php preflight.phpExpected behavior
On a PHP 8.4 CLI, the script prints the detected PHP version, the documentation URL, a note that Nette compatibility is unknown, and a numbered list of ten documentation pages to read. On any other PHP minor version it prints an error to stderr and exits with status 1.
Requires only the PHP 8.4 CLI. It is not a Nette application, installs nothing, and does not verify Nette compatibility. For real setup, follow the official Installation page.