├── docs
├── www
│ ├── meta.json
│ ├── files
│ │ ├── nette-logo-black.png
│ │ ├── nette-logo-blue.png
│ │ ├── nette-logo-blue.webp
│ │ ├── nette-logo-oval.png
│ │ ├── nette-logo-oval.webp
│ │ ├── nette-logo-white.png
│ │ ├── nette-logo-black.webp
│ │ ├── nette-logo-white.webp
│ │ └── NetteFramework-vector-logo.zip
│ ├── cs
│ │ ├── @home.texy
│ │ ├── @menu-common.texy
│ │ └── maintenance.texy
│ └── en
│ │ ├── @home.texy
│ │ ├── @menu-common.texy
│ │ └── maintenance.texy
├── migrations
│ ├── meta.json
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ └── en
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
├── quickstart
│ ├── meta.json
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ └── files
│ │ ├── qs-fatal.webp
│ │ ├── qs-hello.webp
│ │ ├── qs-tracy.avif
│ │ ├── qs-tracybar.webp
│ │ ├── qs-welcome.webp
│ │ ├── adminer-posts.webp
│ │ └── adminer-comments.webp
├── best-practices
│ ├── meta.json
│ ├── cs
│ │ └── @meta.texy
│ └── en
│ │ └── @meta.texy
├── contributing
│ ├── meta.json
│ ├── files
│ │ └── new-line-after.webp
│ ├── cs
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ └── en
│ │ ├── @left-menu.texy
│ │ └── @home.texy
├── dibi
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @menu.texy
│ └── meta.json
├── nette
│ ├── meta.json
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @menu-topics.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @menu-topics.texy
│ └── files
│ │ └── qs-welcome.webp
├── texy
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @menu.texy
│ ├── files
│ │ └── image.gif
│ └── meta.json
├── assets
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ └── meta.json
├── database
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── upgrading.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── upgrading.texy
│ ├── files
│ │ └── db-schema-1-.webp
│ └── meta.json
├── forms
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ ├── files
│ │ ├── form-cs.webp
│ │ ├── form-en.webp
│ │ ├── form-areas-en.webp
│ │ └── defaultformrenderer.webp
│ └── meta.json
├── http
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ └── meta.json
├── latte
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── cookbook
│ │ │ ├── @meta.texy
│ │ │ └── @home.texy
│ │ ├── @home.texy
│ │ ├── @menu.texy
│ │ └── @left-menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── cookbook
│ │ │ ├── @meta.texy
│ │ │ └── @home.texy
│ │ ├── @home.texy
│ │ ├── @menu.texy
│ │ └── @left-menu.texy
│ ├── meta.json
│ └── files
│ │ ├── latte-debugging.webp
│ │ └── latte-phpstorm-plugin.webp
├── security
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ └── meta.json
├── tester
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── @menu.texy
│ │ ├── @home.texy
│ │ └── @left-menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── @menu.texy
│ │ ├── @home.texy
│ │ └── @left-menu.texy
│ └── meta.json
├── tracy
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── @menu.texy
│ │ ├── @left-menu.texy
│ │ ├── @home.texy
│ │ └── stopwatch.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── @menu.texy
│ │ ├── @left-menu.texy
│ │ ├── @home.texy
│ │ └── stopwatch.texy
│ ├── files
│ │ ├── bardump-cs.webp
│ │ ├── bardump-en.webp
│ │ ├── dump-basic.webp
│ │ ├── dump-dark.webp
│ │ ├── tracy-bar.webp
│ │ ├── tracy-error.webp
│ │ ├── tracy-error2.webp
│ │ ├── tracy-notice.webp
│ │ ├── tracy-notice2.webp
│ │ └── tracy-exception.webp
│ └── meta.json
├── utils
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── staticclass.texy
│ │ ├── @left-menu.texy
│ │ └── random.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── staticclass.texy
│ │ ├── @left-menu.texy
│ │ └── random.texy
│ ├── meta.json
│ └── files
│ │ └── debugger-circle.webp
├── application
│ ├── cs
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ ├── en
│ │ ├── @meta.texy
│ │ └── @left-menu.texy
│ ├── meta.json
│ └── files
│ │ ├── routing-debugger.webp
│ │ └── phpstorm-completion.webp
├── .github
│ ├── funding.yml
│ └── workflows
│ │ └── coding-style.yml
├── dependency-injection
│ ├── cs
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ ├── en
│ │ ├── @meta.texy
│ │ ├── @left-menu.texy
│ │ └── @home.texy
│ └── meta.json
├── neon
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── caching
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── mail
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── schema
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── bootstrap
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── component-model
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── php-generator
│ ├── cs
│ │ └── @meta.texy
│ ├── en
│ │ └── @meta.texy
│ └── meta.json
├── tokenizer
│ └── meta.json
├── safe-stream
│ └── meta.json
├── code-checker
│ └── meta.json
└── robot-loader
│ └── meta.json
├── forms
├── examples
│ ├── assets
│ │ └── logo.png
│ ├── localization.ini
│ └── latte
│ │ └── page.latte
├── src
│ ├── assets
│ │ ├── index.esm.ts
│ │ ├── index.umd.ts
│ │ ├── dist
│ │ │ └── package.json
│ │ ├── webalize.ts
│ │ └── types.ts
│ └── Forms
│ │ ├── FormRenderer.php
│ │ ├── SubmitterControl.php
│ │ ├── Rendering
│ │ └── LatteRenderer.php
│ │ ├── Controls
│ │ └── TextArea.php
│ │ ├── Rule.php
│ │ └── Control.php
├── .phpstorm.meta.php
├── tsconfig.json
├── eslint.config.js
└── package.json
├── tracy
├── examples
│ ├── assets
│ │ ├── E_COMPILE_ERROR.php
│ │ ├── arrow.png
│ │ └── style.css
│ ├── output-debugger.php
│ ├── fatal-error.php
│ ├── warning.php
│ └── notice.php
├── src
│ └── Tracy
│ │ ├── assets
│ │ ├── tabs.css
│ │ ├── table-sort.css
│ │ ├── helpers.js
│ │ └── toggle.css
│ │ ├── BlueScreen
│ │ ├── assets
│ │ │ ├── section-stack-fiber.latte
│ │ │ ├── section-exception-exception.latte
│ │ │ ├── section-stack-generator.latte
│ │ │ ├── section-exception-causedBy.latte
│ │ │ └── section-cli.latte
│ │ └── dist
│ │ │ ├── section-stack-fiber.phtml
│ │ │ ├── section-exception-exception.phtml
│ │ │ ├── section-stack-generator.phtml
│ │ │ └── section-exception-causedBy.phtml
│ │ ├── Session
│ │ ├── SessionStorage.php
│ │ └── NativeSession.php
│ │ ├── Bar
│ │ ├── panels
│ │ │ ├── warnings.panel.latte
│ │ │ ├── dumps.panel.latte
│ │ │ ├── info.tab.latte
│ │ │ ├── dumps.tab.latte
│ │ │ └── warnings.tab.latte
│ │ ├── IBarPanel.php
│ │ ├── dist
│ │ │ ├── warnings.panel.phtml
│ │ │ ├── dumps.panel.phtml
│ │ │ ├── info.tab.phtml
│ │ │ └── dumps.tab.phtml
│ │ └── assets
│ │ │ ├── panels.latte
│ │ │ └── loader.latte
│ │ └── Logger
│ │ └── ILogger.php
├── package.json
├── eslint.config.js
├── .phpstorm.meta.php
└── tools
│ └── open-in-editor
│ └── windows
│ └── install.cmd
├── safe-stream
└── src
│ ├── loader.php
│ └── SafeStream
│ └── SafeStream.php
├── tester
└── src
│ ├── tester
│ └── Runner
│ ├── exceptions.php
│ └── OutputHandler.php
├── component-model
└── .phpstorm.meta.php
├── di
├── .phpstorm.meta.php
└── src
│ ├── DI
│ ├── Attributes
│ │ └── Inject.php
│ ├── DynamicParameter.php
│ ├── Config
│ │ ├── Adapter.php
│ │ ├── Adapters
│ │ │ └── PhpAdapter.php
│ │ └── Helpers.php
│ └── Definitions
│ │ └── Expression.php
│ └── Bridges
│ └── DITracy
│ └── tab.latte
├── application
└── src
│ ├── Application
│ ├── Attributes
│ │ ├── Deprecated.php
│ │ ├── Parameter.php
│ │ ├── Persistent.php
│ │ ├── CrossOrigin.php
│ │ └── Requires.php
│ ├── UI
│ │ ├── InvalidLinkException.php
│ │ ├── BadSignalException.php
│ │ ├── TemplateFactory.php
│ │ ├── SignalReceiver.php
│ │ ├── Renderable.php
│ │ ├── StatePersistent.php
│ │ ├── Template.php
│ │ └── Multiplier.php
│ ├── IPresenter.php
│ ├── Responses
│ │ ├── VoidResponse.php
│ │ └── ForwardResponse.php
│ ├── Response.php
│ └── IPresenterFactory.php
│ └── Bridges
│ └── ApplicationLatte
│ ├── LatteFactory.php
│ └── Nodes
│ └── NNonceNode.php
├── schema
└── src
│ └── Schema
│ ├── DynamicParameter.php
│ ├── MergeMode.php
│ └── Schema.php
├── finder
├── readme.md
└── composer.json
├── security
└── src
│ ├── Bridges
│ └── SecurityTracy
│ │ ├── panel.latte
│ │ ├── dist
│ │ ├── panel.phtml
│ │ └── tab.phtml
│ │ └── tab.latte
│ ├── Security
│ ├── AuthenticationException.php
│ ├── IdentityHandler.php
│ ├── Role.php
│ ├── Resource.php
│ └── IIdentity.php
│ └── compatibility.php
├── latte
├── src
│ ├── Latte
│ │ ├── Compiler
│ │ │ ├── Nodes
│ │ │ │ ├── StatementNode.php
│ │ │ │ ├── AreaNode.php
│ │ │ │ ├── Php
│ │ │ │ │ ├── ComplexTypeNode.php
│ │ │ │ │ ├── ScalarNode.php
│ │ │ │ │ ├── VarLikeIdentifierNode.php
│ │ │ │ │ ├── Scalar
│ │ │ │ │ │ ├── NullNode.php
│ │ │ │ │ │ └── BooleanNode.php
│ │ │ │ │ ├── NullableTypeNode.php
│ │ │ │ │ ├── SuperiorTypeNode.php
│ │ │ │ │ ├── Expression
│ │ │ │ │ │ ├── TemporaryNode.php
│ │ │ │ │ │ ├── CloneNode.php
│ │ │ │ │ │ ├── NotNode.php
│ │ │ │ │ │ ├── EmptyNode.php
│ │ │ │ │ │ └── ErrorSuppressNode.php
│ │ │ │ │ ├── InterpolatedStringPartNode.php
│ │ │ │ │ ├── IdentifierNode.php
│ │ │ │ │ └── ClosureUseNode.php
│ │ │ │ ├── NopNode.php
│ │ │ │ ├── TemplateNode.php
│ │ │ │ └── AuxiliaryNode.php
│ │ │ └── Node.php
│ │ ├── Essential
│ │ │ ├── RollbackException.php
│ │ │ ├── RawPhpExtension.php
│ │ │ └── Nodes
│ │ │ │ └── TraceNode.php
│ │ ├── Runtime
│ │ │ ├── HtmlStringable.php
│ │ │ ├── Block.php
│ │ │ └── Html.php
│ │ ├── ContentType.php
│ │ ├── attributes.php
│ │ ├── Policy.php
│ │ ├── Loader.php
│ │ └── Sandbox
│ │ │ └── Nodes
│ │ │ ├── FunctionCallableNode.php
│ │ │ ├── FunctionCallNode.php
│ │ │ ├── MethodCallableNode.php
│ │ │ ├── StaticMethodCallableNode.php
│ │ │ ├── StaticMethodCallNode.php
│ │ │ └── StaticPropertyFetchNode.php
│ └── Bridges
│ │ └── Tracy
│ │ └── TracyExtension.php
└── bin
│ └── latte-lint
├── reflection
└── src
│ ├── Reflection
│ ├── IAnnotation.php
│ ├── Annotation.php
│ └── Helpers.php
│ └── Bridges
│ └── ReflectionDI
│ └── ReflectionExtension.php
├── mail
├── .phpstorm.meta.php
└── src
│ └── Mail
│ ├── Signer.php
│ ├── Mailer.php
│ └── exceptions.php
├── php-generator
└── src
│ └── PhpGenerator
│ ├── PhpLiteral.php
│ ├── PropertyHookType.php
│ ├── PropertyAccessMode.php
│ ├── Visibility.php
│ ├── PsrPrinter.php
│ └── EnumCase.php
├── tokenizer
├── src
│ ├── Tokenizer
│ │ ├── Exception.php
│ │ └── Token.php
│ └── Utils
│ │ └── TokenizerException.php
└── composer.json
├── utils
├── src
│ ├── StaticClass.php
│ ├── HtmlStringable.php
│ ├── Translator.php
│ ├── Utils
│ │ └── ImageType.php
│ ├── Iterators
│ │ └── Mapper.php
│ └── compatibility.php
└── .phpstorm.meta.php
├── database
└── src
│ ├── Database
│ ├── Conventions
│ │ └── AmbiguousReferenceKeyException.php
│ ├── Drivers
│ │ ├── PDO
│ │ │ ├── ODBC
│ │ │ │ └── Driver.php
│ │ │ ├── PgSQL
│ │ │ │ ├── Result.php
│ │ │ │ └── Driver.php
│ │ │ ├── MSSQL
│ │ │ │ └── Driver.php
│ │ │ └── SQLSrv
│ │ │ │ └── Driver.php
│ │ └── Driver.php
│ ├── Reflection
│ │ ├── Index.php
│ │ └── ForeignKey.php
│ ├── DateTime.php
│ └── SqlLiteral.php
│ ├── Bridges
│ └── DatabaseTracy
│ │ └── tab.latte
│ └── compatibility.php
├── assets
└── src
│ └── Assets
│ ├── exceptions.php
│ ├── Asset.php
│ ├── Mapper.php
│ ├── HtmlRenderable.php
│ ├── EntryAsset.php
│ ├── GenericAsset.php
│ └── LazyLoad.php
├── http
└── src
│ └── Bridges
│ └── HttpTracy
│ ├── tab.latte
│ ├── dist
│ └── tab.phtml
│ └── SessionPanel.php
├── bootstrap
├── src
│ ├── Configurator.php
│ └── Bootstrap
│ │ └── Extensions
│ │ └── ConstantsExtension.php
└── config.stub.neon
├── caching
└── src
│ └── Caching
│ ├── BulkReader.php
│ ├── BulkWriter.php
│ └── Storages
│ ├── Journal.php
│ └── DevNullStorage.php
├── neon
└── src
│ └── Neon
│ ├── Position.php
│ ├── Node
│ ├── InlineArrayNode.php
│ ├── ArrayNode.php
│ └── BlockArrayNode.php
│ ├── Entity.php
│ ├── Exception.php
│ ├── Node.php
│ ├── Decoder.php
│ └── Token.php
└── routing
└── src
└── Routing
└── Router.php
/docs/www/meta.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/docs/migrations/meta.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/docs/quickstart/meta.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/docs/best-practices/meta.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/docs/contributing/meta.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/docs/dibi/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Dibi Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/nette/meta.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "4.0"
3 | }
4 |
--------------------------------------------------------------------------------
/docs/texy/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Texy Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/assets/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/assets/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/database/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/dibi/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Dibi Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/forms/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/forms/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/http/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/http/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/latte/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Latte Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/latte/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Latte Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/nette/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/nette/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/security/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/tester/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Tester Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/texy/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Texy Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/tracy/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Tracy Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/tracy/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Tracy Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/utils/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/utils/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/application/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/application/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/database/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/migrations/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/migrations/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/security/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/tester/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Tester Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/quickstart/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Píšeme první aplikaci!}}
2 |
--------------------------------------------------------------------------------
/docs/.github/funding.yml:
--------------------------------------------------------------------------------
1 | github: dg
2 | custom: "https://nette.org/donate"
3 |
--------------------------------------------------------------------------------
/docs/dependency-injection/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 |
--------------------------------------------------------------------------------
/docs/dependency-injection/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 |
--------------------------------------------------------------------------------
/docs/quickstart/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Create Your First Application!}}
2 |
--------------------------------------------------------------------------------
/docs/neon/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: utils:@left-menu}}
3 |
--------------------------------------------------------------------------------
/docs/caching/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/latte/cs/cookbook/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Latte Dokumentace}}
2 | {{leftbar: /@left-menu}}
3 |
--------------------------------------------------------------------------------
/docs/mail/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/mail/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/neon/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: utils:@left-menu}}
3 |
--------------------------------------------------------------------------------
/docs/schema/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/texy/files/image.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nette/union/HEAD/docs/texy/files/image.gif
--------------------------------------------------------------------------------
/docs/best-practices/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Návody a postupy}}
2 | {{leftbar: www:@menu-common}}
3 |
--------------------------------------------------------------------------------
/docs/bootstrap/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/bootstrap/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/caching/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/latte/en/cookbook/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Latte Documentation}}
2 | {{leftbar: /@left-menu}}
3 |
--------------------------------------------------------------------------------
/docs/schema/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/component-model/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/component-model/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/dibi/meta.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "5.x",
3 | "repo": "dg/dibi",
4 | "composer": "dibi/dibi"
5 | }
6 |
--------------------------------------------------------------------------------
/docs/forms/files/form-cs.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nette/union/HEAD/docs/forms/files/form-cs.webp
--------------------------------------------------------------------------------
/docs/forms/files/form-en.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nette/union/HEAD/docs/forms/files/form-en.webp
--------------------------------------------------------------------------------
/docs/php-generator/cs/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Dokumentace}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/php-generator/en/@meta.texy:
--------------------------------------------------------------------------------
1 | {{sitename: Nette Documentation}}
2 | {{leftbar: nette:@menu-topics}}
3 |
--------------------------------------------------------------------------------
/docs/texy/meta.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "3.x",
3 | "repo": "dg/texy",
4 | "composer": "texy/texy"
5 | }
6 |
--------------------------------------------------------------------------------
/forms/examples/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nette/union/HEAD/forms/examples/assets/logo.png
--------------------------------------------------------------------------------
/tracy/examples/assets/E_COMPILE_ERROR.php:
--------------------------------------------------------------------------------
1 | '@']));
8 |
--------------------------------------------------------------------------------
/docs/security/en/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Nette Security
2 | **************
3 | - [Overview |@home]
4 | - [Authentication]
5 | - [Authorization]
6 | - [Password Hashing |passwords]
7 | - [Configuration]
8 |
--------------------------------------------------------------------------------
/docs/http/en/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Nette HTTP
2 | **********
3 | - [Overview |@home]
4 | - [HTTP Request |request]
5 | - [HTTP Response |response]
6 | - [Sessions]
7 | - [URL Utility |urls]
8 | - [Configuration]
9 |
--------------------------------------------------------------------------------
/docs/tracy/en/@left-menu.texy:
--------------------------------------------------------------------------------
1 | - [Getting Started |Guide]
2 | - [Dumper]
3 | - [Stopwatch]
4 | - [Configuring]
5 | - [Recipes]
6 | - [IDE Integration |open-files-in-ide]
7 | - [Creating Extensions |extensions]
8 |
--------------------------------------------------------------------------------
/docs/http/cs/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Nette HTTP
2 | **********
3 | - [Úvod |@home]
4 | - [HTTP request|request]
5 | - [HTTP response|response]
6 | - [Sessions]
7 | - [URL utilities |urls]
8 | - [Konfigurace |configuration]
9 |
--------------------------------------------------------------------------------
/docs/dibi/cs/@menu.texy:
--------------------------------------------------------------------------------
1 | - [Úvod | @home]
2 | - "Blog .[link-external]":https://phpfashion.com/category/dibi
3 | - "API .[link-external]":https://api.nette.org/dibi/
4 | - "GitHub .[link-external]":https://github.com/dg/dibi
5 |
--------------------------------------------------------------------------------
/docs/security/cs/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Nette Security
2 | **************
3 | - [Úvod |@home]
4 | - [Autentizace |authentication]
5 | - [Autorizace |authorization]
6 | - [Hashování hesel |passwords]
7 | - [Konfigurace |configuration]
8 |
--------------------------------------------------------------------------------
/di/.phpstorm.meta.php:
--------------------------------------------------------------------------------
1 | '@']));
8 | override(\Nette\DI\ContainerBuilder::addDefinition(1), type(1));
9 |
--------------------------------------------------------------------------------
/docs/tracy/cs/@left-menu.texy:
--------------------------------------------------------------------------------
1 | - [Začínáme s Tracy |guide]
2 | - [Dumpování |dumper]
3 | - [Měření času |stopwatch]
4 | - [Konfigurace |configuring]
5 | - [Návody |recipes]
6 | - [Integrace s IDE |open-files-in-ide]
7 | - [Tvorba rozšíření |extensions]
8 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/assets/tabs.css:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the Tracy (https://tracy.nette.org)
3 | */
4 |
5 | .tracy-tab-label {
6 | user-select: none;
7 | }
8 |
9 | .tracy-tab-panel:not(.tracy-active) {
10 | display: none;
11 | }
12 |
--------------------------------------------------------------------------------
/tracy/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "module",
3 | "devDependencies": {
4 | "@nette/eslint-plugin": "^0.2",
5 | "eslint": "^9.26.0"
6 | },
7 | "scripts": {
8 | "lint": "eslint --cache",
9 | "lint:fix": "eslint --cache --fix"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/docs/tester/en/@left-menu.texy:
--------------------------------------------------------------------------------
1 | - [Getting Started |guide]
2 | - [Writing Tests]
3 | - [Running Tests]
4 |
5 | - [Assertions]
6 | - [Test Annotations]
7 | - [TestCase]
8 | - [Helpers]
9 |
10 | - [Continuous Integration with Travis |testing-with-travis]
11 |
--------------------------------------------------------------------------------
/docs/texy/en/@menu.texy:
--------------------------------------------------------------------------------
1 | - [home | @home]
2 | - [syntax | syntax]
3 | - [for developers | develop]
4 | - "Playground .[link-external]":https://fiddle.nette.org/texy/
5 | - "API .[link-external]":https://api.nette.org/texy/
6 | - "GitHub .[link-external]":https://github.com/dg/texy
7 |
--------------------------------------------------------------------------------
/docs/latte/en/@home.texy:
--------------------------------------------------------------------------------
1 | {{maintitle: Latte – The Safest & Truly Intuitive Templates for PHP}}
2 | {{description: Latte is the most secure templating system for PHP. It prevents many security vulnerabilities. You will appreciate its intuitive syntax and appreciate many useful features.}}
3 |
--------------------------------------------------------------------------------
/forms/.phpstorm.meta.php:
--------------------------------------------------------------------------------
1 | '@|Nette\Utils\ArrayHash']));
8 | override(new \Nette\Forms\Container, map(['' => 'Nette\Forms\Controls\BaseControl']));
9 |
--------------------------------------------------------------------------------
/docs/database/en/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Nette Database
2 | **************
3 | - [Getting Started |guide]
4 | - [SQL Way]
5 | - [Explorer]
6 | - [Transactions]
7 | - [Exceptions]
8 | - [Reflection]
9 | - [Mapping]
10 | - [Configuration]
11 | - [Security Risks |security]
12 | - [Upgrading]
13 |
--------------------------------------------------------------------------------
/docs/latte/cs/@home.texy:
--------------------------------------------------------------------------------
1 | {{maintitle: Latte – nejbezpečnější & opravdu intuitivní šablony pro PHP}}
2 | {{description: Latte je nejbezpečnější šablonovací systém pro PHP. Zabraňuje spoustě bezpečnostních zranitelností. Oceníte jeho intuitivní syntaxi a oceníte spoustu užitečných vychytávek.}}
3 |
--------------------------------------------------------------------------------
/application/src/Application/Attributes/Deprecated.php:
--------------------------------------------------------------------------------
1 | getTrace();
12 | $expanded = 0;
13 |
14 | require __DIR__ . '/section-stack-callStack.phtml';
15 |
--------------------------------------------------------------------------------
/security/src/Bridges/SecurityTracy/panel.latte:
--------------------------------------------------------------------------------
1 |
{if $user->isLoggedIn()}Logged in{else}Unlogged{/if}
2 |
3 |
4 | {if $user->getIdentity()}
5 | {Tracy\Dumper::toHtml($user->getIdentity(), [Tracy\Dumper::LIVE => true])}
6 | {else}
7 |
no identity
8 | {/if}
9 |
10 |
--------------------------------------------------------------------------------
/docs/texy/cs/@menu.texy:
--------------------------------------------------------------------------------
1 | - [úvod | @home]
2 | - [syntaxe | syntax]
3 | - [pro programátory | develop]
4 | - "blog .[link-external]":https://phpfashion.com/category/texy
5 | - "hřiště .[link-external]":https://fiddle.nette.org/texy/
6 | - "API .[link-external]":https://api.nette.org/texy/
7 | - "GitHub .[link-external]":https://github.com/dg/texy
8 |
--------------------------------------------------------------------------------
/docs/tracy/en/@home.texy:
--------------------------------------------------------------------------------
1 | {{maintitle: Tracy – A Must-Have Debugging Tool for All PHP Developers}}
2 | {{description: Tracy is a tool designed to facilitate debugging PHP code. It is a useful assistant for all PHP programmers, helping with clear visualization and logging of errors, dumping variables, and much more. Warning: Tracy is addictive!}}
3 |
--------------------------------------------------------------------------------
/docs/database/cs/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Nette Database
2 | **************
3 | - [Úvod |guide]
4 | - [SQL přístup |sql way]
5 | - [Explorer]
6 | - [Transakce |transactions]
7 | - [Výjimky |exceptions]
8 | - [Reflexe |reflection]
9 | - [Mapování |mapping]
10 | - [Konfigurace |configuration]
11 | - [Bezpečnostní rizika |security]
12 | - [Upgrade |upgrading]
13 |
--------------------------------------------------------------------------------
/docs/migrations/cs/@left-menu.texy:
--------------------------------------------------------------------------------
1 | Přechod na novější verze
2 | ************************
3 | - [Úvod |@home]
4 | - [Z verze 3.1 na 3.2 |to-3-2]
5 | - [Z verze 3.0 na 3.1 |to-3-1]
6 | - [Z verze 2.4 na 3.0 |to-3-0]
7 | - [Z verze 2.3 na 2.4 |to-2-4]
8 | - [Z verze 2.2 na 2.3 |to-2-3]
9 | - [Z verze 2.1 na 2.2 |to-2-2]
10 | - [Z verze 2.0 na 2.1 |to-2-1]
11 |
--------------------------------------------------------------------------------
/tracy/examples/output-debugger.php:
--------------------------------------------------------------------------------
1 | ';
13 | }
14 |
15 |
16 | head();
17 | echo 'Output Debugger demo
';
18 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/dist/section-stack-fiber.phtml:
--------------------------------------------------------------------------------
1 | getTrace();
13 | $expanded = 0;
14 |
15 | require __DIR__ . '/section-stack-callStack.phtml';
16 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/StatementNode.php:
--------------------------------------------------------------------------------
1 | :first-child > tr:first-child > * {
6 | position: relative;
7 | }
8 |
9 | .tracy-sortable > :first-child > tr:first-child > *:hover:before {
10 | position: absolute;
11 | right: .3em;
12 | content: "\21C5";
13 | opacity: .4;
14 | font-weight: normal;
15 | }
16 |
--------------------------------------------------------------------------------
/tokenizer/src/Utils/TokenizerException.php:
--------------------------------------------------------------------------------
1 |
2 | - [Úvod |@home]
3 | - [Dokumentace |guide]
4 | - "GitHub .[link-external]":https://github.com/nette/latte
5 | Nástroje
6 |
7 | - [fiddle |https://fiddle.nette.org]
8 | - [php2Latte |https://fiddle.nette.org/php2latte/]
9 | - [twig2Latte|https://fiddle.nette.org/twig2latte/]
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/latte/en/@menu.texy:
--------------------------------------------------------------------------------
1 |
2 | - [Home |@home]
3 | - [Documentation |Guide]
4 | - "GitHub .[link-external]":https://github.com/nette/latte
5 | - Tools
6 |
7 | - [fiddle |https://fiddle.nette.org]
8 | - [php2Latte |https://fiddle.nette.org/php2latte/]
9 | - [twig2Latte|https://fiddle.nette.org/twig2latte/]
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/application/src/Application/IPresenter.php:
--------------------------------------------------------------------------------
1 |
4 | isLoggedIn()): ?>
5 | Logged in
6 | Unlogged
7 |
8 |
9 |
10 | getIdentity()): ?> = Tracy\Dumper::toHtml($user->getIdentity(), [Tracy\Dumper::LIVE => true]) ?>
11 |
12 |
no identity
13 |
14 |
--------------------------------------------------------------------------------
/forms/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "esnext",
4 | "target": "es2022",
5 | "resolveJsonModule": true,
6 | "moduleResolution": "node",
7 | "strict": true,
8 | "noUnusedLocals": true,
9 | "noImplicitReturns": true,
10 | "noFallthroughCasesInSwitch": true,
11 | "noUncheckedIndexedAccess": true
12 | },
13 | "include": [
14 | "src/assets/*.ts"
15 | ],
16 | "exclude": [
17 | "node_modules"
18 | ]
19 | }
20 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/ScalarNode.php:
--------------------------------------------------------------------------------
1 | Warnings
2 |
3 |
4 |
5 | {foreach $data as $item => $count}
6 | {do [$file, $line, $message] = explode('|', $item, 3)}
7 |
8 | | {$count ? "{$count}×" : ''} |
9 | {$message} in {Tracy\Helpers::editorLink($file, (int) $line)} |
10 |
11 | {/foreach}
12 |
13 |
14 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Node.php:
--------------------------------------------------------------------------------
1 |
10 | */
11 | abstract class Node implements \IteratorAggregate
12 | {
13 | public ?Position $position = null;
14 |
15 |
16 | abstract public function print(PrintContext $context): string;
17 |
18 |
19 | /** @return \Generator */
20 | abstract public function &getIterator(): \Generator;
21 | }
22 |
--------------------------------------------------------------------------------
/latte/src/Latte/attributes.php:
--------------------------------------------------------------------------------
1 |
2 | #tracy-debug .tracy-DumpPanel h2 {
3 | font: 11pt/1.5 sans-serif;
4 | margin: 0;
5 | padding: 2px 8px;
6 | background: #3484d2;
7 | color: white;
8 | }
9 |
10 |
11 | Dumps
12 |
13 |
14 | {foreach $data as $item}
15 | {if $item[title]}
16 |
{$item[title]}
17 | {/if}
18 |
19 | {$item[dump]}
20 | {/foreach}
21 |
22 |
--------------------------------------------------------------------------------
/forms/src/Forms/FormRenderer.php:
--------------------------------------------------------------------------------
1 | message = str_replace("'$reference'", "'$mapper:$reference'", $this->message);
18 | }
19 | return $this;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/application/src/Application/Attributes/Persistent.php:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/assets/section-exception-exception.latte:
--------------------------------------------------------------------------------
1 | {*
2 | * @var Throwable $ex
3 | * @var callable $dump
4 | *}
5 | {exitIf count(get_mangled_object_vars($ex)) <= count(get_mangled_object_vars(new Exception))}
6 |
7 |
8 |
11 |
12 |
13 | {$dump($ex)}
14 |
15 |
16 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/VarLikeIdentifierNode.php:
--------------------------------------------------------------------------------
1 | name;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/tracy/.phpstorm.meta.php:
--------------------------------------------------------------------------------
1 | {
8 | e.target.closest('a[href^="editor:"]')?.setAttribute('target', '_blank');
9 | },
10 | true,
11 | );
12 | }
13 | }
14 |
15 |
16 | let Tracy = window.Tracy = window.Tracy || {};
17 | if (!Tracy.helpers) {
18 | init();
19 | Tracy.helpers = true;
20 | }
21 |
--------------------------------------------------------------------------------
/assets/src/Assets/Asset.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
9 |
10 |
11 | = Tracy\Helpers::escapeHtml($dump($ex)) ?>
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/panels/info.tab.latte:
--------------------------------------------------------------------------------
1 | {do $this->time = microtime(true) - Tracy\Debugger::$time}
2 |
3 | {number_format($this->time * 1000, 1, '.', " ")} ms
10 |
11 |
--------------------------------------------------------------------------------
/latte/src/Latte/Essential/RawPhpExtension.php:
--------------------------------------------------------------------------------
1 | Nodes\RawPhpNode::create(...),
24 | ];
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/security/src/Security/Role.php:
--------------------------------------------------------------------------------
1 | value pairs, missing items are omitted
21 | */
22 | function bulkRead(array $keys): array;
23 | }
24 |
25 |
26 | class_exists(IBulkReader::class);
27 |
--------------------------------------------------------------------------------
/docs/.github/workflows/coding-style.yml:
--------------------------------------------------------------------------------
1 | name: Coding Style
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | nette_cc:
7 | name: Nette Code Checker
8 | runs-on: ubuntu-latest
9 | steps:
10 | - uses: actions/checkout@v3
11 | - uses: shivammathur/setup-php@v2
12 | with:
13 | php-version: 8.3
14 | coverage: none
15 |
16 | - run: composer create-project nette/code-checker temp/code-checker ^3 --no-progress
17 | - run: php temp/code-checker/code-checker --no-progress
18 |
--------------------------------------------------------------------------------
/docs/latte/cs/cookbook/@home.texy:
--------------------------------------------------------------------------------
1 | Návody a postupy
2 | ****************
3 |
4 | .[perex]
5 | Příklady kódů a receptů pro provádění běžných úkolů pomocí Latte.
6 |
7 | - [Postupy pro vývojáře |/develop]
8 | - [Předávání proměnných napříč šablonami |passing-variables]
9 | - [Všechno, co jste kdy chtěli vědět o seskupování |grouping]
10 | - [Jak psát SQL queries v Latte? |how-to-write-sql-queries-in-latte]
11 | - [Migrace z Latte 2 |migration-from-latte2]
12 | - [Migrace z PHP |migration-from-php]
13 | - [Migrace z Twigu |migration-from-twig]
14 | - [Použití Latte se Slim 4 |slim-framework]
15 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/dist/warnings.panel.phtml:
--------------------------------------------------------------------------------
1 |
4 | Warnings
5 |
6 |
7 |
8 | $count): ?>
9 | | = Tracy\Helpers::escapeHtml($count ? "{$count) ?>
10 | ×" : ''} |
11 | = Tracy\Helpers::escapeHtml($message) ?>
12 | in = Tracy\Helpers::editorLink($file, (int) $line) ?>
13 | |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/latte/en/cookbook/@home.texy:
--------------------------------------------------------------------------------
1 | Cookbook
2 | ********
3 |
4 | .[perex]
5 | Example codes and recipes for accomplishing common tasks with Latte.
6 |
7 | - [Developer guidelines |/develop]
8 | - [Passing variables across templates |passing-variables]
9 | - [Everything you always wanted to know about grouping |grouping]
10 | - [How to write SQL queries in Latte? |how-to-write-sql-queries-in-latte]
11 | - [Migration from Latte 2 |migration-from-latte2]
12 | - [Migration from PHP |migration-from-php]
13 | - [Migration from Twig |migration-from-twig]
14 | - [Using Latte with Slim 4 |slim-framework]
15 |
--------------------------------------------------------------------------------
/latte/src/Latte/Runtime/Html.php:
--------------------------------------------------------------------------------
1 | value = (string) $value;
24 | }
25 |
26 |
27 | public function __toString(): string
28 | {
29 | return $this->value;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/assets/section-stack-generator.latte:
--------------------------------------------------------------------------------
1 | getTrace();
12 | $expanded = null;
13 | $execGenerator = $ref->getExecutingGenerator();
14 | $refExec = new ReflectionGenerator($execGenerator);
15 | $file = $refExec->getExecutingFile();
16 | $line = $refExec->getExecutingLine();
17 |
18 | require __DIR__ . '/section-stack-sourceFile.phtml';
19 | require __DIR__ . '/section-stack-callStack.phtml';
20 |
--------------------------------------------------------------------------------
/application/src/Application/Response.php:
--------------------------------------------------------------------------------
1 |
4 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/dist/dumps.panel.phtml:
--------------------------------------------------------------------------------
1 |
4 |
13 |
14 | Dumps
15 |
16 |
17 |
= Tracy\Helpers::escapeHtml($item['title']) ?>
18 |
19 |
20 | = Tracy\Helpers::escapeHtml($item['dump']) ?>
21 |
22 |
23 |
--------------------------------------------------------------------------------
/database/src/Database/Drivers/PDO/ODBC/Driver.php:
--------------------------------------------------------------------------------
1 | result->queryString] ??= parent::collectColumnsInfo();
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/docs/contributing/en/@home.texy:
--------------------------------------------------------------------------------
1 | Become a Contributor to Nette
2 | *****************************
3 |
4 | .[perex]
5 | Find out how you can get involved in our open source project. Learn the procedures for contributing to the source code and documentation, and become part of the community of developers who actively participate in improving Nette.
6 |
7 |
8 | **Code**
9 |
10 | - [Contributing to Code |code]
11 | - [Coding Standards |coding-standard]
12 |
13 | **Documentation**
14 |
15 | - [Contributing to Documentation |documentation]
16 | - [Documentation Syntax |syntax]
17 | - "Preview editor":https://editor.nette.org
18 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/dist/info.tab.phtml:
--------------------------------------------------------------------------------
1 |
4 | time = microtime(true) - Tracy\Debugger::$time ?>
5 | = Tracy\Helpers::escapeHtml(number_format($this->time * 1000, 1, '.', " ")) ?>
12 | ms
13 |
14 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/dist/section-stack-generator.phtml:
--------------------------------------------------------------------------------
1 | getTrace();
13 | $expanded = null;
14 | $execGenerator = $ref->getExecutingGenerator();
15 | $refExec = new ReflectionGenerator($execGenerator);
16 | $file = $refExec->getExecutingFile();
17 | $line = $refExec->getExecutingLine();
18 |
19 | require __DIR__ . '/section-stack-sourceFile.phtml';
20 | require __DIR__ . '/section-stack-callStack.phtml';
21 |
--------------------------------------------------------------------------------
/database/src/Database/Drivers/Driver.php:
--------------------------------------------------------------------------------
1 | line" . ($this->column ? " at column $this->column" : '');
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/application/src/Application/UI/Renderable.php:
--------------------------------------------------------------------------------
1 | bracket
25 | . ArrayItemNode::itemsToInlineString($this->items)
26 | . ['[' => ']', '{' => '}', '(' => ')'][$this->bracket];
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/Scalar/NullNode.php:
--------------------------------------------------------------------------------
1 | 'Logged in', false => Unlogged, '?' => 'Session is closed']}
2 | {do $colors = [true => '#61A519', false => '#ababab', '?' => '#bb0000']}
3 |
4 |
7 |
8 |
--------------------------------------------------------------------------------
/php-generator/src/PhpGenerator/PsrPrinter.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Nette Forms rendering using Latte
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Nette Forms & Bootstrap v5 rendering example
15 |
16 | {include bootstrap-form, $form}
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/schema/src/Schema/Schema.php:
--------------------------------------------------------------------------------
1 | position = $position;
25 | parent::__construct($message, 0, $previous);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/reflection/src/Reflection/Annotation.php:
--------------------------------------------------------------------------------
1 | $v) {
23 | $this->$k = $v;
24 | }
25 | }
26 |
27 |
28 | /**
29 | * Returns default annotation.
30 | * @return string
31 | */
32 | public function __toString()
33 | {
34 | return $this->value;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/application/src/Application/UI/Template.php:
--------------------------------------------------------------------------------
1 | = { \u00e1: 'a', \u00e4: 'a', \u010d: 'c', \u010f: 'd', \u00e9: 'e', \u011b: 'e', \u00ed: 'i', \u013e: 'l', \u0148: 'n', \u00f3: 'o', \u00f4: 'o', \u0159: 'r', \u0161: 's', \u0165: 't', \u00fa: 'u', \u016f: 'u', \u00fd: 'y', \u017e: 'z' };
2 |
3 | /**
4 | * Converts string to web safe characters [a-z0-9-] text.
5 | * @param {string} s
6 | * @return {string}
7 | */
8 | export function webalize(s: string): string {
9 | s = s.toLowerCase();
10 | let res = '';
11 | for (let i = 0; i < s.length; i++) {
12 | let ch = webalizeTable[s.charAt(i)];
13 | res += ch ? ch : s.charAt(i);
14 | }
15 | return res.replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
16 | }
17 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/Scalar/BooleanNode.php:
--------------------------------------------------------------------------------
1 | value ? 'true' : 'false';
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/application/src/Application/UI/Multiplier.php:
--------------------------------------------------------------------------------
1 | factory = $factory;
27 | }
28 |
29 |
30 | protected function createComponent(string $name): ?Nette\ComponentModel\IComponent
31 | {
32 | return ($this->factory)($name, $this);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/caching/src/Caching/Storages/Journal.php:
--------------------------------------------------------------------------------
1 | items);
26 | }
27 |
28 |
29 | public function &getIterator(): \Generator
30 | {
31 | foreach ($this->items as &$item) {
32 | yield $item;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/database/src/Database/Reflection/Index.php:
--------------------------------------------------------------------------------
1 | name;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/docs/latte/cs/@left-menu.texy:
--------------------------------------------------------------------------------
1 | - [Začínáme s Latte |guide]
2 | - [Proč používat šablony? |why-use]
3 | - Koncepty ⚗️
4 | - [Bezpečnost především |safety-first]
5 | - [Dědičnost šablon |Template Inheritance]
6 | - [Typový systém |type-system]
7 | - [Sandbox]
8 |
9 | - Pro designéry 🎨
10 | - [Syntaxe |syntax]
11 | - [Tagy |tags]
12 | - [Filtry |filters]
13 | - [Funkce |functions]
14 | - [Tipy a triky |recipes]
15 |
16 | - Pro vývojáře 🧮
17 | - [Vývojářské postupy |develop]
18 | - [Rozšiřujeme Latte |extending-latte]
19 |
20 | - [Návody a postupy 💡|cookbook/@home]
21 | - [Migrace z Twigu |cookbook/migration-from-twig]
22 | - [… další |cookbook/@home]
23 |
24 | - "Hřiště .[link-external]":https://fiddle.nette.org/latte/ .{padding-top:1em}
25 |
--------------------------------------------------------------------------------
/docs/utils/en/random.texy:
--------------------------------------------------------------------------------
1 | Generating Random Strings
2 | *************************
3 |
4 | .[perex]
5 | [api:Nette\Utils\Random] is a static class for generating cryptographically secure pseudo-random strings.
6 |
7 |
8 | Installation:
9 |
10 | ```shell
11 | composer require nette/utils
12 | ```
13 |
14 |
15 | generate(int $length=10, string $charlist=`'0-9a-z'`): string .[method]
16 | -----------------------------------------------------------------------
17 |
18 | Generates a random string of a specified length using characters from the `$charlist`. Character ranges like `0-9` can also be used.
19 |
20 | ```php
21 | use Nette\Utils\Random;
22 |
23 | Random::generate(10); // '6zq3a1nl8n'
24 | Random::generate(5, 'A-Z'); // 'HLKUR'
25 | ```
26 |
--------------------------------------------------------------------------------
/utils/.phpstorm.meta.php:
--------------------------------------------------------------------------------
1 | callback = $callback;
26 | }
27 |
28 |
29 | public function current(): mixed
30 | {
31 | return ($this->callback)(parent::current(), parent::key());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/neon/src/Neon/Node.php:
--------------------------------------------------------------------------------
1 |
15 | */
16 | abstract class Node implements \IteratorAggregate
17 | {
18 | public ?int $startTokenPos = null;
19 | public ?int $endTokenPos = null;
20 | public ?Position $start = null;
21 | public ?Position $end = null;
22 |
23 |
24 | abstract public function toValue(): mixed;
25 |
26 |
27 | abstract public function toString(): string;
28 |
29 |
30 | public function &getIterator(): \Generator
31 | {
32 | return;
33 | yield;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/application/src/Application/Attributes/Requires.php:
--------------------------------------------------------------------------------
1 | methods = $methods === null ? null : (array) $methods;
25 | $this->actions = $actions === null ? null : (array) $actions;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/docs/utils/cs/random.texy:
--------------------------------------------------------------------------------
1 | Generování náhodných řetězců
2 | ****************************
3 |
4 | .[perex]
5 | [api:Nette\Utils\Random] je statická třída pro generování kryptograficky bezpečných pseudonáhodných řetězců.
6 |
7 |
8 | Instalace:
9 |
10 | ```shell
11 | composer require nette/utils
12 | ```
13 |
14 |
15 | generate(int $length=10, string $charlist=`'0-9a-z'`): string .[method]
16 | -----------------------------------------------------------------------
17 |
18 | Vygeneruje náhodný řetězec o dané délce ze znaků specifikovaných parametrem `$charlist`. Lze používat i intervaly zapsané jako třeba `0-9`.
19 |
20 | ```php
21 | use Nette\Utils\Random;
22 |
23 | Random::generate(10); // '6zq3a1nl8n'
24 | Random::generate(5, 'A-Z'); // 'HLKUR'
25 | ```
26 |
--------------------------------------------------------------------------------
/neon/src/Neon/Node/BlockArrayNode.php:
--------------------------------------------------------------------------------
1 | items) === 0) {
27 | return '[]';
28 | }
29 |
30 | $res = ArrayItemNode::itemsToBlockString($this->items);
31 | return preg_replace('#^(?=.)#m', $this->indentation, $res);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/database/src/Bridges/DatabaseTracy/tab.latte:
--------------------------------------------------------------------------------
1 |
2 | {$totalTime ? sprintf('%0.1f ms / ', $totalTime * 1000) : ''}{$count}
6 |
7 |
--------------------------------------------------------------------------------
/neon/src/Neon/Decoder.php:
--------------------------------------------------------------------------------
1 | parseToNode($input);
25 | return $node->toValue();
26 | }
27 |
28 |
29 | public function parseToNode(string $input): Node
30 | {
31 | $lexer = new Lexer;
32 | $parser = new Parser;
33 | $stream = $lexer->tokenize($input);
34 | return $parser->parse($stream);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/php-generator/src/PhpGenerator/EnumCase.php:
--------------------------------------------------------------------------------
1 | value = $val;
28 | return $this;
29 | }
30 |
31 |
32 | public function getValue(): string|int|Literal|null
33 | {
34 | return $this->value;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/tracy/examples/fatal-error.php:
--------------------------------------------------------------------------------
1 |
14 |
15 |
16 | Tracy: fatal error demo
17 |
18 | For security reasons, Tracy is visible only on localhost. Look into the source code to see how to enable Tracy.';
22 | }
23 |
24 | require __DIR__ . '/assets/E_COMPILE_ERROR.php';
25 |
--------------------------------------------------------------------------------
/database/src/Database/DateTime.php:
--------------------------------------------------------------------------------
1 | format('c');
24 | }
25 |
26 |
27 | /**
28 | * Returns the date and time in the format 'Y-m-d H:i:s.u'.
29 | */
30 | public function __toString(): string
31 | {
32 | return $this->format('Y-m-d H:i:s.u');
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/assets/src/Assets/GenericAsset.php:
--------------------------------------------------------------------------------
1 | lazyLoad(compact('mimeType'), fn() => $this->mimeType = $this->file ? mime_content_type($this->file) : null);
26 | }
27 |
28 |
29 | public function __toString(): string
30 | {
31 | return $this->url;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/docs/www/cs/@menu-common.texy:
--------------------------------------------------------------------------------
1 | Seznámení
2 | *********
3 | - [Proč používat Nette? |www:10-reasons-why-nette]
4 | - [Instalace |nette:installation]
5 | - [Píšeme první aplikaci! |quickstart:]
6 |
7 |
8 | Obecné témata
9 | *************
10 | - [Seznam balíčků |www:packages]
11 | - [Údržba a PHP verze |www:maintenance]
12 | - [Release Notes |https://nette.org/releases]
13 | - [Přechod na novější verze|migrations:]
14 | - [Řešení problémů |nette:troubleshooting]
15 | - [Kdo tvoří Nette |https://nette.org/contributors]
16 | - [Historie Nette |history]
17 | - [Zapojte se |contributing:]
18 | - [Podpořte vývoj |https://nette.org/cs/donate]
19 | - [API reference |https://api.nette.org/]
20 | - [Návody a postupy |best-practices:]
21 |
22 | - [Bezpečnost především |nette:vulnerability-protection]
23 |
--------------------------------------------------------------------------------
/reflection/src/Reflection/Helpers.php:
--------------------------------------------------------------------------------
1 | getDeclaringClass()->getTraits() as $trait) {
25 | if ($trait->hasProperty($prop->getName())) {
26 | return self::getDeclaringClass($trait->getProperty($prop->getName()));
27 | }
28 | }
29 | return $prop->getDeclaringClass();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/dist/section-exception-causedBy.phtml:
--------------------------------------------------------------------------------
1 |
4 | getPrevious() ?>
5 |
16 |
--------------------------------------------------------------------------------
/docs/dependency-injection/cs/@home.texy:
--------------------------------------------------------------------------------
1 | Nette DI
2 | ********
3 |
4 | .[perex]
5 | Dependency Injection je návrhový vzor, který zásadně změní váš pohled na kód a vývoj. Otevře vám cestu do světa čistě navržených a udržitelných aplikací.
6 |
7 | - [Co je Dependency Injection? |introduction]
8 | - [Globální stav a singletony |global-state]
9 | - [Předávání závislostí |passing-dependencies]
10 | - [Co je DI kontejner? |container]
11 | - [Často kladené otázky|faq]
12 |
13 |
14 | Balíček `nette/di` poskytuje nesmírně pokročilý kompilovaný DI kontejner pro PHP.
15 |
16 | - [Nette DI Container |nette-container]
17 | - [Konfigurace |configuration]
18 | - [Definování služeb |services]
19 | - [Autowiring |autowiring]
20 | - [Generované továrny |factory]
21 | - [Tvorba rozšíření pro Nette DI|extensions]
22 |
--------------------------------------------------------------------------------
/forms/src/Forms/Rendering/LatteRenderer.php:
--------------------------------------------------------------------------------
1 | generateLatte($form);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/TemplateNode.php:
--------------------------------------------------------------------------------
1 | head;
32 | yield $this->main;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/latte/src/Latte/Sandbox/Nodes/FunctionCallableNode.php:
--------------------------------------------------------------------------------
1 | name, $from->position);
21 | }
22 |
23 |
24 | public function print(PrintContext $context): string
25 | {
26 | return '$this->global->sandbox->closure('
27 | . $context->memberAsString($this->name) . ')';
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/assets/section-exception-causedBy.latte:
--------------------------------------------------------------------------------
1 | {*
2 | * @var Throwable $ex
3 | * @var Throwable[] $exceptions
4 | * @var BlueScreen $this
5 | * @var array[] $actions
6 | * @var callable $dump
7 | *}
8 | {do $ex = $ex->getPrevious()}
9 | {exitIf !$ex || in_array($ex, $exceptions, true)}
10 | {do $exceptions[] = $ex}
11 |
12 |
13 |
16 |
17 |
18 | {do require(__DIR__ . '/section-exception.phtml')}
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/www/en/@menu-common.texy:
--------------------------------------------------------------------------------
1 | Introduction
2 | ************
3 | - [Why Use Nette?|www:10-reasons-why-nette]
4 | - [Installation |nette:installation]
5 | - [Create Your First Application! |quickstart:]
6 |
7 |
8 | General Topics
9 | **************
10 | - [List of Packages |www:packages]
11 | - [Maintenance and PHP Versions |www:maintenance]
12 | - [Release Notes |https://nette.org/releases]
13 | - [Upgrade Guide |migrations:]
14 | - [nette:Troubleshooting]
15 | - [Who Creates Nette |https://nette.org/contributors]
16 | - [History of Nette |history]
17 | - [Get Involved |contributing:]
18 | - [Sponsor Development |https://nette.org/en/donate]
19 | - [API Reference |https://api.nette.org/]
20 | - [Tutorials and Best Practices |best-practices:]
21 |
22 | - [Security First |nette:vulnerability-protection]
23 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/panels/dumps.tab.latte:
--------------------------------------------------------------------------------
1 | {exitIf empty($data)}
2 | dumps
7 |
--------------------------------------------------------------------------------
/database/src/Database/Reflection/ForeignKey.php:
--------------------------------------------------------------------------------
1 | name;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/database/src/Database/SqlLiteral.php:
--------------------------------------------------------------------------------
1 | value;
28 | }
29 |
30 |
31 | public function getParameters(): array
32 | {
33 | return $this->parameters;
34 | }
35 |
36 |
37 | public function __toString(): string
38 | {
39 | return $this->value;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/forms/src/Forms/Controls/TextArea.php:
--------------------------------------------------------------------------------
1 | control->setName('textarea');
25 | $this->setOption('type', 'textarea');
26 | }
27 |
28 |
29 | public function getControl(): Nette\Utils\Html
30 | {
31 | return parent::getControl()
32 | ->setText((string) $this->getRenderedValue());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/security/src/Bridges/SecurityTracy/dist/tab.phtml:
--------------------------------------------------------------------------------
1 |
4 | 'Logged in', false => 'Unlogged', '?' => 'Session is closed'] ?> '#61A519', false => '#ababab', '?' => '#bb0000'] ?>
6 |
10 |
11 |
--------------------------------------------------------------------------------
/tracy/examples/warning.php:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 | Tracy Warning and StrictMode demo
18 |
19 | For security reasons, Tracy is visible only on localhost. Look into the source code to see how to enable Tracy.';
26 | }
27 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/NullableTypeNode.php:
--------------------------------------------------------------------------------
1 | type->print($context);
28 | }
29 |
30 |
31 | public function &getIterator(): \Generator
32 | {
33 | yield $this->type;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/SuperiorTypeNode.php:
--------------------------------------------------------------------------------
1 | type, $kind, strict: true);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/assets/toggle.css:
--------------------------------------------------------------------------------
1 | /**
2 | * This file is part of the Tracy (https://tracy.nette.org)
3 | */
4 |
5 | .tracy-collapsed {
6 | display: none;
7 | }
8 |
9 | .tracy-toggle.tracy-collapsed {
10 | display: inline;
11 | }
12 |
13 | .tracy-toggle {
14 | cursor: pointer;
15 | user-select: none;
16 | white-space: nowrap;
17 | }
18 |
19 | .tracy-toggle:after {
20 | content: '';
21 | display: inline-block;
22 | vertical-align: middle;
23 | line-height: 0;
24 | border-top: .6ex solid;
25 | border-right: .6ex solid transparent;
26 | border-left: .6ex solid transparent;
27 | transform: scale(1, 1.5);
28 | margin: 0 .2ex 0 .7ex;
29 | transition: .1s transform;
30 | opacity: .5;
31 | }
32 |
33 | .tracy-toggle.tracy-collapsed:after {
34 | transform: rotate(-90deg) scale(1, 1.5) translate(.1ex, 0);
35 | }
36 |
--------------------------------------------------------------------------------
/docs/tracy/cs/stopwatch.texy:
--------------------------------------------------------------------------------
1 | Měření času
2 | ***********
3 |
4 | Dalším užitečným nástrojem ladiče jsou stopky s přesností na mikrosekundy:
5 |
6 | ```php
7 | Debugger::timer();
8 |
9 | // princi můj malinký spi, ptáčkové sladce již sní...
10 | sleep(2);
11 |
12 | $elapsed = Debugger::timer();
13 | // $elapsed = 2
14 | ```
15 |
16 | Volitelným parametrem je možno dosáhnout vícenásobných měření.
17 |
18 | ```php
19 | Debugger::timer('page-generating');
20 | // nějaký kód
21 |
22 | Debugger::timer('rss-generating');
23 | // nějaký kód
24 |
25 | $rssElapsed = Debugger::timer('rss-generating');
26 | $pageElapsed = Debugger::timer('page-generating');
27 | ```
28 |
29 | ```php
30 | Debugger::timer(); // zapne stopky
31 |
32 | ... // časově náročná operace
33 |
34 | echo Debugger::timer(); // vypíše uplynulý čas v sekundách
35 | ```
36 |
--------------------------------------------------------------------------------
/caching/src/Caching/Storages/DevNullStorage.php:
--------------------------------------------------------------------------------
1 | dump($data) . ';';
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/latte/bin/latte-lint:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | \n";
22 | exit(1);
23 | }
24 |
25 | if ($debug = in_array('--debug', $argv, true)) {
26 | echo "Debug mode\n";
27 | }
28 | if ($strict = in_array('--strict', $argv, true)) {
29 | echo "Strict mode\n";
30 | }
31 |
32 | $path = $argv[1];
33 | $linter = new Latte\Tools\Linter(debug: $debug, strict: $strict);
34 | $ok = $linter->scanDirectory($path);
35 | exit($ok ? 0 : 1);
36 |
--------------------------------------------------------------------------------
/latte/src/Latte/Sandbox/Nodes/FunctionCallNode.php:
--------------------------------------------------------------------------------
1 | name, $from->args, $from->position);
21 | }
22 |
23 |
24 | public function print(PrintContext $context): string
25 | {
26 | return '$this->global->sandbox->call('
27 | . $context->memberAsString($this->name) . ', '
28 | . $context->argumentsAsArray($this->args) . ')';
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/assets/panels.latte:
--------------------------------------------------------------------------------
1 | {*
2 | * @var string $type
3 | * @var \stdClass[] $panels
4 | *}
5 | {do $icons = '
6 |
10 | '}
11 |
12 | {foreach $panels as $panel}
13 | {do $content = $panel->panel ? $panel->panel . "\n" . $icons : ''}
14 | {do $class = 'tracy-panel ' . ($type === ajax ? '' : tracy-panel-persist) . ' tracy-panel-' . $type}
15 |
16 | {/foreach}
17 |
18 |
19 |
--------------------------------------------------------------------------------
/utils/src/compatibility.php:
--------------------------------------------------------------------------------
1 | global->uiNonce ? " nonce=\"{$this->global->uiNonce}\"" : "";';
30 | }
31 |
32 |
33 | public function &getIterator(): \Generator
34 | {
35 | false && yield;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/docs/dependency-injection/en/@home.texy:
--------------------------------------------------------------------------------
1 | Nette DI
2 | ********
3 |
4 | .[perex]
5 | Dependency Injection is a design pattern that will fundamentally change the way you look at code and development. It opens the way to a world of cleanly designed and sustainable applications.
6 |
7 | - [What is Dependency Injection? |introduction]
8 | - [Global State & Singletons |global-state]
9 | - [Passing Dependencies |passing-dependencies]
10 | - [What is a DI Container? |container]
11 | - [Frequently Asked Questions |faq]
12 |
13 |
14 | The `nette/di` package provides an extremely advanced compiled DI container for PHP.
15 |
16 | - [Nette DI Container |nette-container]
17 | - [Configuration |configuration]
18 | - [Service Definitions |services]
19 | - [Autowiring |autowiring]
20 | - [Generated Factories |factory]
21 | - [Creating Extensions for Nette DI|extensions]
22 |
--------------------------------------------------------------------------------
/docs/www/cs/maintenance.texy:
--------------------------------------------------------------------------------
1 | Údržba a kompatibilita s PHP
2 | ****************************
3 |
4 | .[perex]
5 | Nette je framework s mimořádně dlouhou dobou podpory jednotlivých vydání. Každá větěv je LTS (Long-Term Support Release) s podporou nejméně 2 roky.
6 |
7 | Každá verze je aktivně udržována po období jednoho roku (nebo i déle) od počátečního stabilního vydání. Kritické a bezpečností chyby jsou opravovány po dva roky.
8 |
9 |
10 | Kalendář vydávání Nette
11 | =======================
12 |
13 | {{include: doc-roadmap-table}}
14 |
15 |
16 | Kompatibilita s PHP
17 | ===================
18 |
19 | Kompatibilita platí vždy pro nejnovější vydání z každé řady.
20 |
21 |
22 | {{include: doc-roadmap-versions}}
23 |
24 |
25 | {{leftbar: @menu-common}}
26 | {{toc: no}}
27 | {{description: Vydání Nette, roadmap, tabulky údržby a kompatibilita s PHP}}
28 |
--------------------------------------------------------------------------------
/forms/src/Forms/Rule.php:
--------------------------------------------------------------------------------
1 | validator)
34 | || Nette\Utils\Callback::isStatic($this->validator);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/latte/src/Bridges/Tracy/TracyExtension.php:
--------------------------------------------------------------------------------
1 | panel = new LattePanel(name: $name);
29 | Tracy\Debugger::getBar()->addPanel($this->panel);
30 | }
31 |
32 |
33 | public function beforeRender(Template $template): void
34 | {
35 | $this->panel->addTemplate($template);
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/latte/src/Latte/Sandbox/Nodes/MethodCallableNode.php:
--------------------------------------------------------------------------------
1 | object, $from->name, $from->position);
21 | }
22 |
23 |
24 | public function print(PrintContext $context): string
25 | {
26 | return '$this->global->sandbox->closure(['
27 | . $this->object->print($context) . ', '
28 | . $context->memberAsString($this->name) . '])';
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/dist/dumps.tab.phtml:
--------------------------------------------------------------------------------
1 |
4 | dumps
9 |
--------------------------------------------------------------------------------
/database/src/Database/Drivers/PDO/PgSQL/Driver.php:
--------------------------------------------------------------------------------
1 | resultClass = Result::class;
25 | return $connection;
26 | }
27 |
28 |
29 | public function createEngine(Drivers\Connection $connection): PostgreSQLEngine
30 | {
31 | return new PostgreSQLEngine($connection);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/tracy/examples/notice.php:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 | Tracy Notice and StrictMode demo
18 |
19 | For security reasons, Tracy is visible only on localhost. Look into the source code to see how to enable Tracy.';
33 | }
34 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/Expression/CloneNode.php:
--------------------------------------------------------------------------------
1 | expr->print($context);
29 | }
30 |
31 |
32 | public function &getIterator(): \Generator
33 | {
34 | yield $this->expr;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/Expression/NotNode.php:
--------------------------------------------------------------------------------
1 | prefixOp($this, '!', $this->expr);
29 | }
30 |
31 |
32 | public function &getIterator(): \Generator
33 | {
34 | yield $this->expr;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/InterpolatedStringPartNode.php:
--------------------------------------------------------------------------------
1 | expr->print($context) . ')';
29 | }
30 |
31 |
32 | public function &getIterator(): \Generator
33 | {
34 | yield $this->expr;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/forms/src/assets/types.ts:
--------------------------------------------------------------------------------
1 | export type FormElement = (HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | HTMLButtonElement) & { form: HTMLFormElement };
2 |
3 | // number can only be created by the validator
4 | export type FormElementValue = string | string[] | boolean | FileList | number | null;
5 |
6 | export type Validator = (
7 | elem: FormElement,
8 | arg: unknown,
9 | value: unknown,
10 | newValue: { value: unknown },
11 | ) => boolean | null;
12 |
13 | export type Rule = {
14 | op: string;
15 | neg?: boolean;
16 | msg: string;
17 | arg?: unknown;
18 | rules?: Rule[];
19 | condition?: boolean;
20 | control?: string;
21 | toggle?: Record;
22 | };
23 |
24 | export type FormError = {
25 | element: FormElement;
26 | message: string;
27 | };
28 |
29 | export type ToggleState = {
30 | elem: FormElement;
31 | state: boolean;
32 | };
33 |
--------------------------------------------------------------------------------
/http/src/Bridges/HttpTracy/SessionPanel.php:
--------------------------------------------------------------------------------
1 | =7.1"
18 | },
19 | "require-dev": {
20 | "nette/tester": "~2.0",
21 | "tracy/tracy": "^2.3",
22 | "phpstan/phpstan": "^0.12"
23 | },
24 | "autoload": {
25 | "classmap": ["src/"]
26 | },
27 | "minimum-stability": "dev",
28 | "scripts": {
29 | "phpstan": "phpstan analyse",
30 | "tester": "tester tests -s"
31 | },
32 | "extra": {
33 | "branch-alias": {
34 | "dev-master": "3.0-dev"
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/tokenizer/src/Tokenizer/Token.php:
--------------------------------------------------------------------------------
1 | value = $value;
31 | $this->type = $type;
32 | $this->offset = $offset;
33 | }
34 |
35 |
36 | /** @param int|string ...$args */
37 | public function is(...$args): bool
38 | {
39 | return in_array($this->value, $args, true)
40 | || in_array($this->type, $args, true);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/Expression/ErrorSuppressNode.php:
--------------------------------------------------------------------------------
1 | prefixOp($this, '@', $this->expr);
29 | }
30 |
31 |
32 | public function &getIterator(): \Generator
33 | {
34 | yield $this->expr;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/IdentifierNode.php:
--------------------------------------------------------------------------------
1 | name;
29 | }
30 |
31 |
32 | public function print(PrintContext $context): string
33 | {
34 | return $this->name;
35 | }
36 |
37 |
38 | public function &getIterator(): \Generator
39 | {
40 | false && yield;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/latte/src/Latte/Essential/Nodes/TraceNode.php:
--------------------------------------------------------------------------------
1 | format(
31 | 'Latte\Essential\Tracer::throw() %line;',
32 | $this->position,
33 | );
34 | }
35 |
36 |
37 | public function &getIterator(): \Generator
38 | {
39 | false && yield;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/latte/src/Latte/Sandbox/Nodes/StaticMethodCallableNode.php:
--------------------------------------------------------------------------------
1 | class, $from->name, $from->position);
21 | }
22 |
23 |
24 | public function print(PrintContext $context): string
25 | {
26 | return '$this->global->sandbox->closure(['
27 | . $context->memberAsString($this->class) . ', '
28 | . $context->memberAsString($this->name) . '])';
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/bootstrap/src/Bootstrap/Extensions/ConstantsExtension.php:
--------------------------------------------------------------------------------
1 | dynamic(),
25 | Expect::string(),
26 | );
27 | }
28 |
29 |
30 | public function loadConfiguration(): void
31 | {
32 | foreach ($this->getConfig() as $name => $value) {
33 | $this->initialization->addBody('define(?, ?);', [$name, $value]);
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/assets/loader.latte:
--------------------------------------------------------------------------------
1 | {*
2 | * @var string $nonceAttr
3 | * @var bool $async
4 | * @var string $requestId
5 | *}
6 |
7 | {do $baseUrl = $_SERVER[REQUEST_URI] ?? ''}
8 | {do $baseUrl .= strpos($baseUrl, '?') === false ? '?' : '&'}
9 | {do $asyncAttr = $async ? ' async' : ''}
10 |
11 | {if empty($content)}
12 |
13 | {else}
14 |
15 |
16 |
17 |
20 | {/if}
21 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/Bar/panels/warnings.tab.latte:
--------------------------------------------------------------------------------
1 | {exitIf empty($data)}
2 |
3 |
13 |
14 |
15 | {$sum = array_sum($data)}{$sum > 1 ? ' warnings' : ' warning'}
19 |
20 |
--------------------------------------------------------------------------------
/database/src/compatibility.php:
--------------------------------------------------------------------------------
1 | $value) {
25 | if ($value === null) {
26 | unset($this->$name);
27 | $this->lazyLoaders[$name] = $loader;
28 | } else {
29 | $this->$name = $value;
30 | }
31 | }
32 | }
33 |
34 |
35 | public function __get(string $name): mixed
36 | {
37 | if ($loader = $this->lazyLoaders[$name] ?? null) {
38 | $loader();
39 | }
40 | return $this->$name;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/di/src/Bridges/DITracy/tab.latte:
--------------------------------------------------------------------------------
1 |
2 | {$elapsedTime ? sprintf('%0.1f ms', $elapsedTime * 1000) : ''}
6 |
7 |
--------------------------------------------------------------------------------
/tracy/src/Tracy/BlueScreen/assets/section-cli.latte:
--------------------------------------------------------------------------------
1 | {*
2 | * @var string $source
3 | * @var callable $dump
4 | *}
5 | {use Tracy\Helpers}
6 |
7 | {exitIf !Helpers::isCli()}
8 |
9 |
10 |
13 |
14 |
15 |
Process ID {getmypid()}
16 |
17 | {if count($tmp = explode('):', $source, 2)) === 2}
18 |
php{$tmp[1]}
19 | {/if}
20 |
21 | {if isset($_SERVER[argv])}
22 |
Arguments
23 |
24 |
25 |
26 | {foreach $_SERVER[argv] as $k => $v}
27 |
28 | | {$k} |
29 | {$dump($v, $k)} |
30 |
31 | {/foreach}
32 |
33 |
34 | {/if}
35 |
36 |
37 |
--------------------------------------------------------------------------------
/docs/www/en/maintenance.texy:
--------------------------------------------------------------------------------
1 | Maintenance and PHP Versions
2 | ****************************
3 |
4 | .[perex]
5 | Nette is a framework with an exceptionally long support period for individual releases. Each branch is an LTS (Long-Term Support Release) with support for at least 2 years.
6 |
7 | Each version is actively maintained for a period of one year (or longer) from its initial stable release. Critical and security bugs are fixed for two years.
8 |
9 |
10 | Release Calendar (Roadmap)
11 | ==========================
12 |
13 | {{include: doc-roadmap-table}}
14 |
15 |
16 | PHP Compatibility
17 | =================
18 |
19 | Compatibility always applies to the latest patch release within each minor version series.
20 |
21 |
22 | {{include: doc-roadmap-versions}}
23 |
24 |
25 | {{leftbar: @menu-common}}
26 | {{toc: no}}
27 | {{description: Nette releases, roadmap, maintenance schedule, and PHP compatibility tables}}
28 |
--------------------------------------------------------------------------------
/forms/src/Forms/Control.php:
--------------------------------------------------------------------------------
1 | getValues() result?
39 | */
40 | function isOmitted(): bool;
41 | }
42 |
--------------------------------------------------------------------------------
/forms/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "type": "module",
3 | "devDependencies": {
4 | "@nette/eslint-plugin": "^0.1.2",
5 | "@rollup/plugin-json": "^6.1.0",
6 | "@rollup/plugin-node-resolve": "^16.0.1",
7 | "@rollup/plugin-terser": "^0.4.4",
8 | "@rollup/plugin-typescript": "^12.1.2",
9 | "eslint": "^9.26.0",
10 | "globals": "^15.3.0",
11 | "jasmine": "^5.7.1",
12 | "jasmine-core": "^5.7.1",
13 | "karma": "^6.4.4",
14 | "karma-chrome-launcher": "^3.2.0",
15 | "karma-jasmine": "^5.1.0",
16 | "rollup": "^4.40.2",
17 | "rollup-plugin-dts": "^6.2.1",
18 | "terser": "^5.39.1",
19 | "typescript": "^5.8.3",
20 | "typescript-eslint": "^8.32.1"
21 | },
22 | "scripts": {
23 | "typecheck": "tsc -noemit",
24 | "lint": "eslint --cache",
25 | "lint:fix": "eslint --cache --fix",
26 | "test": "karma start tests/netteForms/karma.conf.ts",
27 | "build": "rollup -c",
28 | "postbuild": "npm run test"
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/Php/ClosureUseNode.php:
--------------------------------------------------------------------------------
1 | byRef ? '&' : '') . $this->var->print($context);
31 | }
32 |
33 |
34 | public function &getIterator(): \Generator
35 | {
36 | yield $this->var;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/database/src/Database/Drivers/PDO/SQLSrv/Driver.php:
--------------------------------------------------------------------------------
1 | converts BIT to boolean
20 | */
21 | class Driver extends Drivers\PDO\Driver
22 | {
23 | public function connect(): Drivers\PDO\Connection
24 | {
25 | $connection = parent::connect();
26 | $connection->metaTypeKey = 'sqlsrv:decl_type';
27 | return $connection;
28 | }
29 |
30 |
31 | public function createEngine(Drivers\Connection $connection): SQLServerEngine
32 | {
33 | return new SQLServerEngine($connection);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/latte/src/Latte/Sandbox/Nodes/StaticMethodCallNode.php:
--------------------------------------------------------------------------------
1 | class, $from->name, $from->args, $from->position);
21 | }
22 |
23 |
24 | public function print(PrintContext $context): string
25 | {
26 | return '$this->global->sandbox->call(['
27 | . $context->memberAsString($this->class) . ', '
28 | . $context->memberAsString($this->name) . '], '
29 | . $context->argumentsAsArray($this->args) . ')';
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/latte/src/Latte/Compiler/Nodes/AuxiliaryNode.php:
--------------------------------------------------------------------------------
1 | print)($context, ...$this->nodes);
30 | }
31 |
32 |
33 | public function &getIterator(): \Generator
34 | {
35 | foreach ($this->nodes as &$node) {
36 | if ($node) {
37 | yield $node;
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/latte/src/Latte/Sandbox/Nodes/StaticPropertyFetchNode.php:
--------------------------------------------------------------------------------
1 | class, $from->name, $from->position);
21 | }
22 |
23 |
24 | public function print(PrintContext $context): string
25 | {
26 | return '$this->global->sandbox->prop('
27 | . $context->memberAsString($this->class) . ', '
28 | . $context->memberAsString($this->name) . ')'
29 | . '::$'
30 | . $context->objectProperty($this->name);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/reflection/src/Bridges/ReflectionDI/ReflectionExtension.php:
--------------------------------------------------------------------------------
1 | debugMode = $debugMode;
25 | }
26 |
27 |
28 | public function afterCompile(Nette\PhpGenerator\ClassType $class)
29 | {
30 | $class->getMethod('initialize')
31 | ->addBody('Nette\Reflection\AnnotationsParser::setCacheStorage($this->getByType(Nette\Caching\IStorage::class));')
32 | ->addBody('Nette\Reflection\AnnotationsParser::$autoRefresh = ?;', [$this->debugMode]);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/application/src/Application/Responses/ForwardResponse.php:
--------------------------------------------------------------------------------
1 | request = $request;
26 | }
27 |
28 |
29 | public function getRequest(): Nette\Application\Request
30 | {
31 | return $this->request;
32 | }
33 |
34 |
35 | /**
36 | * Sends response to output.
37 | */
38 | public function send(Nette\Http\IRequest $httpRequest, Nette\Http\IResponse $httpResponse): void
39 | {
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/di/src/DI/Config/Helpers.php:
--------------------------------------------------------------------------------
1 |