← ClaudeAtlas

nette-upgradinglisted

Invoke whenever Nette code uses a name you are not sure still exists, and before writing any class from Nette 2.x/3.0-era memory. A lookup table mapping every retired name to its current one - `I`-prefixed interfaces (IAuthenticator, IRouter, IStorage, ITranslator, IMailer, ITemplate), UPPER_CASE constants renamed to PascalCase (Cache::EXPIRE, Form::FILLED, Debugger::PRODUCTION, Image::SHRINK_ONLY, Presenter::INVALID_LINK_*), Nette\Database\Context vs Explorer, Nette\Security\Identity vs SimpleIdentity, Nette\Configurator vs Nette\Bootstrap\Configurator, FileUpload::getName() vs getUntrustedName(), static Passwords vs the service, and flags replaced by named arguments. Also trigger for "upgrade", "migration", "BC break", "deprecated", "Nette 2 to 3", "which version renamed this", `E_USER_DEPRECATED` notices, and "why does this method/class not exist".
nette/agent-plugins · ★ 44 · Data & Documents · score 81
Install: claude install-skill nette/agent-plugins
## Nette: Retired Names and Silent Traps Most of these old names **still work** – as a `class_alias`, a deprecated stub or a magic property – and at **runtime** most of them are completely silent. A real `E_USER_DEPRECATED` is the exception (`Strings::TRIM_CHARACTERS`, the `@persistent` / `@crossOrigin` annotations, NEON `...`, `getParameter($name, $default)`, `@property-deprecated`), so never rely on a notice appearing. They are not invisible to *tooling*, though. The aliases live in each package's `src/compatibility.php` / `compatibility-intf.php` in this shape: ```php if (false) { /** @deprecated use Nette\Database\Explorer */ class Context extends Explorer { } } elseif (!class_exists(Context::class)) { class_alias(Explorer::class, Context::class); } ``` The `if (false)` branch never executes, but the IDE, PHPStan and Composer's classmap all read it – which is exactly why the editor strikes the old name through while PHP says nothing. So static analysis will flag these; a passing test run will not. Prefer the current name always. Area-specific tables live in **nette-security** (Authenticator, Authorizator, User constants) and **nette-components** (component tree, `redrawControl`); this skill does not repeat them. ### Interfaces: the `I` prefix was dropped | Retired | Current | Note | |---|---|---| | `Nette\Application\IResponse` | `Nette\Application\Response` | alias, silent | | `UI\ITemplate`, `ITemplateFactory`, `IRenderable`, `ISignalReceiver`, `IStatePersist