@mytechtoday/augment-extensions 0.7.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +265 -232
- package/README.md +956 -771
- package/augment-extensions/coding-standards/bash/README.md +196 -196
- package/augment-extensions/coding-standards/bash/module.json +163 -163
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -336
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -289
- package/augment-extensions/coding-standards/css/README.md +40 -40
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -550
- package/augment-extensions/coding-standards/css/module.json +44 -44
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -448
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -492
- package/augment-extensions/coding-standards/html/README.md +40 -40
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -267
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -505
- package/augment-extensions/coding-standards/html/module.json +44 -44
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -349
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -194
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -487
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -550
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -667
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -267
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -612
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -505
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -48
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -515
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -448
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -492
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -439
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -349
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -486
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -463
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -543
- package/augment-extensions/coding-standards/js/README.md +46 -46
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -487
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -667
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -612
- package/augment-extensions/coding-standards/js/module.json +49 -49
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -515
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -439
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -486
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -463
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -543
- package/augment-extensions/coding-standards/php/README.md +248 -248
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -204
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -206
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -234
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -211
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -215
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -189
- package/augment-extensions/coding-standards/php/module.json +166 -166
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -480
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -332
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -472
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -561
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -402
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -425
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -627
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -336
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -677
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -279
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -392
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -186
- package/augment-extensions/coding-standards/php/rules/security.md +358 -358
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -403
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -331
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -426
- package/augment-extensions/coding-standards/powershell/README.md +154 -154
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -272
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -173
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -243
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -297
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -224
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -340
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -255
- package/augment-extensions/coding-standards/powershell/module.json +165 -165
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -439
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -240
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -384
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -383
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -482
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -296
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -314
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -466
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -244
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -266
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -209
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -314
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -268
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -197
- package/augment-extensions/coding-standards/python/README.md +48 -48
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -373
- package/augment-extensions/coding-standards/python/module.json +30 -30
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -884
- package/augment-extensions/coding-standards/python/rules/best-practices.md +232 -232
- package/augment-extensions/coding-standards/python/rules/code-organization.md +220 -220
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -831
- package/augment-extensions/coding-standards/python/rules/error-handling.md +1008 -1008
- package/augment-extensions/coding-standards/python/rules/naming-conventions.md +172 -172
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -409
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -446
- package/augment-extensions/coding-standards/python/rules/type-hints.md +253 -253
- package/augment-extensions/coding-standards/react/README.md +45 -45
- package/augment-extensions/coding-standards/react/module.json +27 -27
- package/augment-extensions/coding-standards/react/rules/component-patterns.md +214 -214
- package/augment-extensions/coding-standards/react/rules/hooks-best-practices.md +235 -235
- package/augment-extensions/coding-standards/react/rules/performance.md +300 -300
- package/augment-extensions/coding-standards/react/rules/state-management.md +265 -265
- package/augment-extensions/coding-standards/react/rules/typescript-react.md +271 -271
- package/augment-extensions/coding-standards/typescript/README.md +45 -45
- package/augment-extensions/coding-standards/typescript/module.json +27 -27
- package/augment-extensions/coding-standards/typescript/rules/naming-conventions.md +225 -225
- package/augment-extensions/collections/html-css-js/README.md +82 -82
- package/augment-extensions/collections/html-css-js/collection.json +41 -41
- package/augment-extensions/domain-rules/api-design/README.md +41 -41
- package/augment-extensions/domain-rules/api-design/module.json +27 -27
- package/augment-extensions/domain-rules/api-design/rules/authentication.md +263 -263
- package/augment-extensions/domain-rules/api-design/rules/documentation.md +395 -395
- package/augment-extensions/domain-rules/api-design/rules/error-handling.md +290 -290
- package/augment-extensions/domain-rules/api-design/rules/graphql-api.md +313 -313
- package/augment-extensions/domain-rules/api-design/rules/rest-api.md +214 -214
- package/augment-extensions/domain-rules/api-design/rules/versioning.md +268 -268
- package/augment-extensions/domain-rules/database/README.md +161 -161
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -793
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -1132
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -868
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -805
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -621
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -965
- package/augment-extensions/domain-rules/database/module.json +28 -28
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -624
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -588
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -856
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -778
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -963
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -1076
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -697
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -671
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -607
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -907
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -783
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -980
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -485
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -521
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -858
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -934
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -27
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -26
- package/augment-extensions/domain-rules/mcp/README.md +150 -150
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -522
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -520
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -570
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -427
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -435
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -502
- package/augment-extensions/domain-rules/mcp/module.json +49 -49
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -595
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -345
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -687
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -636
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -484
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -360
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -393
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -194
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -625
- package/augment-extensions/domain-rules/security/README.md +41 -41
- package/augment-extensions/domain-rules/security/module.json +28 -28
- package/augment-extensions/domain-rules/security/rules/authentication-security.md +361 -361
- package/augment-extensions/domain-rules/security/rules/encryption.md +208 -208
- package/augment-extensions/domain-rules/security/rules/input-validation.md +294 -294
- package/augment-extensions/domain-rules/security/rules/owasp-top-10.md +339 -339
- package/augment-extensions/domain-rules/security/rules/secure-coding.md +293 -293
- package/augment-extensions/domain-rules/security/rules/web-security.md +268 -268
- package/augment-extensions/domain-rules/seo-sales-marketing/ANNOUNCEMENT.md +143 -0
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/README.md +140 -136
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/SCHEMA-VALIDATION-REPORT.md +216 -216
- package/augment-extensions/domain-rules/seo-sales-marketing/TEST-VALIDATION.md +129 -0
- package/augment-extensions/domain-rules/seo-sales-marketing/USAGE-GUIDES.md +254 -0
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/brand-kit-example.yaml +292 -292
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/campaign-brief-example.yaml +389 -389
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/content-calendar-example.yaml +643 -643
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/email-newsletter-example.md +376 -376
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/landing-page-example.md +934 -934
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/ppc-ad-copy-example.md +301 -301
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/seo-blog-post-example.md +347 -347
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/social-media-campaign-example.md +606 -606
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/module.json +50 -50
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/affiliate-influencer-marketing.md +593 -593
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/asset-management.md +418 -418
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/brand-consistency.md +210 -210
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/content-marketing.md +337 -337
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/conversion-optimization.md +455 -455
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/direct-sales.md +499 -499
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/email-marketing.md +439 -439
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/legal-compliance.md +227 -227
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/ppc-advertising.md +569 -569
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/seo-optimization.md +470 -470
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/social-media-marketing.md +414 -414
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/universal-marketing.md +177 -177
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/asset-inventory.schema.json +247 -247
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/brand-kit.schema.json +326 -326
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/campaign-brief.schema.json +342 -342
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/color-palette.schema.json +223 -223
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/content-template.schema.json +383 -383
- package/augment-extensions/domain-rules/wordpress/README.md +163 -163
- package/augment-extensions/domain-rules/wordpress/module.json +32 -32
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -617
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -270
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -423
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -493
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -568
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -510
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -251
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -501
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -564
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -388
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -441
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -139
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -1599
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -1727
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -428
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -422
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -1623
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -1343
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -734
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -1350
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -503
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -971
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -53
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -770
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -874
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -629
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -559
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -709
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -736
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -1057
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -463
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -478
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -818
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -416
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -667
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -878
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -693
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -352
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -818
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -624
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -866
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -1165
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -414
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -751
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -949
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -458
- package/augment-extensions/examples/design-patterns/README.md +37 -37
- package/augment-extensions/examples/design-patterns/examples/behavioral-patterns.md +370 -370
- package/augment-extensions/examples/design-patterns/examples/creational-patterns.md +250 -250
- package/augment-extensions/examples/design-patterns/examples/structural-patterns.md +264 -264
- package/augment-extensions/examples/design-patterns/module.json +27 -27
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -101
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -428
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -40
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -98
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -1299
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -40
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -98
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -763
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -40
- package/augment-extensions/workflows/beads/README.md +135 -135
- package/augment-extensions/workflows/beads/examples/complete-workflow-example.md +278 -278
- package/augment-extensions/workflows/beads/module.json +55 -55
- package/augment-extensions/workflows/beads/rules/best-practices.md +398 -398
- package/augment-extensions/workflows/beads/rules/file-format.md +327 -327
- package/augment-extensions/workflows/beads/rules/manual-setup.md +315 -315
- package/augment-extensions/workflows/beads/rules/workflow.md +326 -326
- package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -145
- package/augment-extensions/workflows/beads-integration/README.md +143 -143
- package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -32
- package/augment-extensions/workflows/beads-integration/config/schema.json +140 -140
- package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -293
- package/augment-extensions/workflows/beads-integration/module.json +75 -75
- package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -219
- package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -256
- package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -607
- package/augment-extensions/workflows/database/README.md +195 -195
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -295
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -498
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -496
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -444
- package/augment-extensions/workflows/database/module.json +42 -42
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -249
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -339
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -352
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -435
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -535
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -305
- package/augment-extensions/workflows/database/rules/workflow.md +458 -458
- package/augment-extensions/workflows/wordpress-plugin/README.md +232 -232
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -839
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -854
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -540
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -1083
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -669
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -597
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -925
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -752
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -773
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -49
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -942
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -702
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -728
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -775
- package/augment-extensions/writing-standards/screenplay/README.md +339 -300
- package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -121
- package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -153
- package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -243
- package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -213
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -164
- package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -95
- package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -116
- package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -151
- package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -67
- package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -142
- package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -184
- package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -204
- package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -181
- package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -70
- package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -399
- package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -407
- package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -401
- package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -409
- package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -268
- package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -289
- package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -293
- package/augment-extensions/writing-standards/screenplay/module.json +124 -124
- package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -339
- package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -329
- package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -169
- package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -437
- package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -263
- package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -261
- package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -315
- package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -0
- package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -413
- package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -372
- package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -374
- package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -443
- package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -207
- package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -444
- package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -331
- package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -334
- package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -299
- package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -263
- package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -412
- package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -370
- package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -374
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -339
- package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -277
- package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -393
- package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -332
- package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -247
- package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -200
- package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -233
- package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -245
- package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -221
- package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -159
- package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -1449
- package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -64
- package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -520
- package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -497
- package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -492
- package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -509
- package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -490
- package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -501
- package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -498
- package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -508
- package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -500
- package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -158
- package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -643
- package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -311
- package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -562
- package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -538
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -432
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -637
- package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -66
- package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -458
- package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -490
- package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -458
- package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -459
- package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -491
- package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -491
- package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -490
- package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -464
- package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -461
- package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -489
- package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -494
- package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -483
- package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -489
- package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -496
- package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -463
- package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -0
- package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -0
- package/cli/MODULES.md +302 -302
- package/cli/dist/cli.js +109 -22
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/gui.d.ts.map +1 -1
- package/cli/dist/commands/gui.js +54 -6
- package/cli/dist/commands/gui.js.map +1 -1
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +76 -23
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/self-remove.d.ts.map +1 -1
- package/cli/dist/commands/self-remove.js +48 -74
- package/cli/dist/commands/self-remove.js.map +1 -1
- package/cli/dist/commands/show.d.ts +11 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +120 -0
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/showCompleted.d.ts +21 -0
- package/cli/dist/commands/showCompleted.d.ts.map +1 -0
- package/cli/dist/commands/showCompleted.js +225 -0
- package/cli/dist/commands/showCompleted.js.map +1 -0
- package/cli/dist/commands/skill.js +88 -88
- package/cli/dist/commands/update.d.ts +2 -0
- package/cli/dist/commands/update.d.ts.map +1 -1
- package/cli/dist/commands/update.js +67 -1
- package/cli/dist/commands/update.js.map +1 -1
- package/cli/dist/utils/beadsCompletedChecker.d.ts +72 -0
- package/cli/dist/utils/beadsCompletedChecker.d.ts.map +1 -0
- package/cli/dist/utils/beadsCompletedChecker.js +198 -0
- package/cli/dist/utils/beadsCompletedChecker.js.map +1 -0
- package/cli/dist/utils/catalog-sync.js +13 -13
- package/cli/dist/utils/extractCommandHelp.d.ts +51 -0
- package/cli/dist/utils/extractCommandHelp.d.ts.map +1 -0
- package/cli/dist/utils/extractCommandHelp.js +250 -0
- package/cli/dist/utils/extractCommandHelp.js.map +1 -0
- package/cli/dist/utils/install-rules.js +55 -55
- package/cli/dist/utils/mcp-integration.js +44 -44
- package/cli/dist/utils/rule-install-hooks.js +8 -8
- package/modules.md +667 -630
- package/package.json +85 -85
|
@@ -1,331 +1,331 @@
|
|
|
1
|
-
# Type Declarations
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Modern PHP (8.0+) provides robust type declaration features. This document defines standards for using type hints, return types, and strict typing to improve code safety and clarity.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Strict Types
|
|
10
|
-
|
|
11
|
-
### Enable Strict Types
|
|
12
|
-
|
|
13
|
-
**Rule:**
|
|
14
|
-
- All PHP files SHOULD declare strict types at the top
|
|
15
|
-
- Place immediately after opening `<?php` tag
|
|
16
|
-
|
|
17
|
-
**Example:**
|
|
18
|
-
```php
|
|
19
|
-
<?php
|
|
20
|
-
|
|
21
|
-
declare(strict_types=1);
|
|
22
|
-
|
|
23
|
-
namespace App\Services;
|
|
24
|
-
|
|
25
|
-
class UserService
|
|
26
|
-
{
|
|
27
|
-
// ...
|
|
28
|
-
}
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**Benefits:**
|
|
32
|
-
- Prevents implicit type coercion
|
|
33
|
-
- Catches type errors early
|
|
34
|
-
- Improves code reliability
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Function and Method Type Hints
|
|
39
|
-
|
|
40
|
-
### Parameter Type Declarations
|
|
41
|
-
|
|
42
|
-
**Rules:**
|
|
43
|
-
- Parameters SHOULD have type declarations
|
|
44
|
-
- Use scalar types: `int`, `float`, `string`, `bool`
|
|
45
|
-
- Use class/interface names for objects
|
|
46
|
-
- Use `array` for arrays (or specific array shapes in PHPDoc)
|
|
47
|
-
- Use `callable` for callbacks
|
|
48
|
-
- Use `iterable` for arrays or Traversable objects
|
|
49
|
-
|
|
50
|
-
**Examples:**
|
|
51
|
-
```php
|
|
52
|
-
// ✅ Good
|
|
53
|
-
function processUser(int $id, string $name, bool $isActive): void
|
|
54
|
-
{
|
|
55
|
-
// ...
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function saveOrder(Order $order, PaymentGatewayInterface $gateway): bool
|
|
59
|
-
{
|
|
60
|
-
// ...
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function filterItems(array $items, callable $callback): array
|
|
64
|
-
{
|
|
65
|
-
return array_filter($items, $callback);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// ❌ Bad
|
|
69
|
-
function processUser($id, $name, $isActive) // No type hints
|
|
70
|
-
{
|
|
71
|
-
// ...
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Return Type Declarations
|
|
76
|
-
|
|
77
|
-
**Rules:**
|
|
78
|
-
- Return types SHOULD be declared for all methods
|
|
79
|
-
- Use `void` for methods that don't return a value
|
|
80
|
-
- Use specific types instead of `mixed` when possible
|
|
81
|
-
- Use `never` for methods that always throw or exit (PHP 8.1+)
|
|
82
|
-
|
|
83
|
-
**Examples:**
|
|
84
|
-
```php
|
|
85
|
-
// ✅ Good
|
|
86
|
-
function getUserById(int $id): ?User
|
|
87
|
-
{
|
|
88
|
-
return User::find($id);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function calculateTotal(array $items): float
|
|
92
|
-
{
|
|
93
|
-
return array_sum(array_column($items, 'price'));
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function logMessage(string $message): void
|
|
97
|
-
{
|
|
98
|
-
error_log($message);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
function throwError(): never
|
|
102
|
-
{
|
|
103
|
-
throw new RuntimeException('Fatal error');
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// ❌ Bad
|
|
107
|
-
function getUserById(int $id) // No return type
|
|
108
|
-
{
|
|
109
|
-
return User::find($id);
|
|
110
|
-
}
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Nullable Types
|
|
116
|
-
|
|
117
|
-
### Nullable Type Syntax
|
|
118
|
-
|
|
119
|
-
**Rules:**
|
|
120
|
-
- Use `?Type` syntax for nullable types
|
|
121
|
-
- Nullable types indicate the value can be `null`
|
|
122
|
-
- Place `?` before the type name
|
|
123
|
-
|
|
124
|
-
**Examples:**
|
|
125
|
-
```php
|
|
126
|
-
// ✅ Good
|
|
127
|
-
function findUser(int $id): ?User
|
|
128
|
-
{
|
|
129
|
-
return User::find($id) ?: null;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function processData(?string $input): string
|
|
133
|
-
{
|
|
134
|
-
return $input ?? 'default';
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
class User
|
|
138
|
-
{
|
|
139
|
-
public function __construct(
|
|
140
|
-
public string $name,
|
|
141
|
-
public ?string $email = null,
|
|
142
|
-
public ?DateTime $birthDate = null
|
|
143
|
-
) {}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// ❌ Bad
|
|
147
|
-
function findUser(int $id): User // Should be nullable
|
|
148
|
-
{
|
|
149
|
-
return User::find($id) ?: null; // Can return null
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## Union Types (PHP 8.0+)
|
|
156
|
-
|
|
157
|
-
### Union Type Syntax
|
|
158
|
-
|
|
159
|
-
**Rules:**
|
|
160
|
-
- Use `Type1|Type2` syntax for union types
|
|
161
|
-
- Union types allow multiple possible types
|
|
162
|
-
- Order types from most specific to least specific
|
|
163
|
-
- Use when a parameter or return can be multiple types
|
|
164
|
-
|
|
165
|
-
**Examples:**
|
|
166
|
-
```php
|
|
167
|
-
// ✅ Good
|
|
168
|
-
function formatValue(int|float $value): string
|
|
169
|
-
{
|
|
170
|
-
return number_format($value, 2);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
function processInput(string|array $data): array
|
|
174
|
-
{
|
|
175
|
-
return is_array($data) ? $data : [$data];
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
function findRecord(int|string $identifier): ?User
|
|
179
|
-
{
|
|
180
|
-
return is_int($identifier)
|
|
181
|
-
? User::find($identifier)
|
|
182
|
-
: User::where('email', $identifier)->first();
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Union with null (alternative to nullable syntax)
|
|
186
|
-
function getValue(): int|string|null
|
|
187
|
-
{
|
|
188
|
-
// ...
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// ❌ Bad
|
|
192
|
-
function formatValue($value): string // Should specify int|float
|
|
193
|
-
{
|
|
194
|
-
return number_format($value, 2);
|
|
195
|
-
}
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Intersection Types (PHP 8.1+)
|
|
201
|
-
|
|
202
|
-
### Intersection Type Syntax
|
|
203
|
-
|
|
204
|
-
**Rules:**
|
|
205
|
-
- Use `Type1&Type2` syntax for intersection types
|
|
206
|
-
- Intersection types require all types to be satisfied
|
|
207
|
-
- Commonly used with interfaces
|
|
208
|
-
|
|
209
|
-
**Examples:**
|
|
210
|
-
```php
|
|
211
|
-
// ✅ Good
|
|
212
|
-
interface Loggable
|
|
213
|
-
{
|
|
214
|
-
public function log(): void;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
interface Cacheable
|
|
218
|
-
{
|
|
219
|
-
public function cache(): void;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
function processEntity(Loggable&Cacheable $entity): void
|
|
223
|
-
{
|
|
224
|
-
$entity->log();
|
|
225
|
-
$entity->cache();
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## Property Type Declarations (PHP 7.4+)
|
|
232
|
-
|
|
233
|
-
### Typed Properties
|
|
234
|
-
|
|
235
|
-
**Rules:**
|
|
236
|
-
- Class properties SHOULD have type declarations
|
|
237
|
-
- Typed properties enforce type at assignment
|
|
238
|
-
- Uninitialized typed properties throw error if accessed
|
|
239
|
-
|
|
240
|
-
**Examples:**
|
|
241
|
-
```php
|
|
242
|
-
// ✅ Good
|
|
243
|
-
class User
|
|
244
|
-
{
|
|
245
|
-
private int $id;
|
|
246
|
-
private string $name;
|
|
247
|
-
private ?string $email = null;
|
|
248
|
-
private array $roles = [];
|
|
249
|
-
private DateTime $createdAt;
|
|
250
|
-
|
|
251
|
-
public function __construct(int $id, string $name)
|
|
252
|
-
{
|
|
253
|
-
$this->id = $id;
|
|
254
|
-
$this->name = $name;
|
|
255
|
-
$this->createdAt = new DateTime();
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// ❌ Bad
|
|
260
|
-
class User
|
|
261
|
-
{
|
|
262
|
-
private $id; // No type
|
|
263
|
-
private $name; // No type
|
|
264
|
-
private $email; // No type
|
|
265
|
-
}
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### Readonly Properties (PHP 8.1+)
|
|
269
|
-
|
|
270
|
-
**Rules:**
|
|
271
|
-
- Use `readonly` for properties that should not change after initialization
|
|
272
|
-
- Readonly properties can only be initialized once
|
|
273
|
-
- Readonly properties must have a type declaration
|
|
274
|
-
|
|
275
|
-
**Examples:**
|
|
276
|
-
```php
|
|
277
|
-
// ✅ Good
|
|
278
|
-
class User
|
|
279
|
-
{
|
|
280
|
-
public function __construct(
|
|
281
|
-
public readonly int $id,
|
|
282
|
-
public readonly string $name,
|
|
283
|
-
public readonly DateTime $createdAt
|
|
284
|
-
) {}
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
// ❌ Bad - trying to modify readonly
|
|
288
|
-
$user = new User(1, 'John', new DateTime());
|
|
289
|
-
$user->name = 'Jane'; // Error: Cannot modify readonly property
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## Constructor Property Promotion (PHP 8.0+)
|
|
295
|
-
|
|
296
|
-
**Rules:**
|
|
297
|
-
- Use promoted properties to reduce boilerplate
|
|
298
|
-
- Combine parameter declaration with property declaration
|
|
299
|
-
- Works with visibility modifiers and type declarations
|
|
300
|
-
|
|
301
|
-
**Examples:**
|
|
302
|
-
```php
|
|
303
|
-
// ✅ Good (PHP 8.0+)
|
|
304
|
-
class User
|
|
305
|
-
{
|
|
306
|
-
public function __construct(
|
|
307
|
-
private int $id,
|
|
308
|
-
private string $name,
|
|
309
|
-
private ?string $email = null,
|
|
310
|
-
private array $roles = []
|
|
311
|
-
) {}
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// ❌ Verbose (old style)
|
|
315
|
-
class User
|
|
316
|
-
{
|
|
317
|
-
private int $id;
|
|
318
|
-
private string $name;
|
|
319
|
-
private ?string $email;
|
|
320
|
-
private array $roles;
|
|
321
|
-
|
|
322
|
-
public function __construct(int $id, string $name, ?string $email = null, array $roles = [])
|
|
323
|
-
{
|
|
324
|
-
$this->id = $id;
|
|
325
|
-
$this->name = $name;
|
|
326
|
-
$this->email = $email;
|
|
327
|
-
$this->roles = $roles;
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
1
|
+
# Type Declarations
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Modern PHP (8.0+) provides robust type declaration features. This document defines standards for using type hints, return types, and strict typing to improve code safety and clarity.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Strict Types
|
|
10
|
+
|
|
11
|
+
### Enable Strict Types
|
|
12
|
+
|
|
13
|
+
**Rule:**
|
|
14
|
+
- All PHP files SHOULD declare strict types at the top
|
|
15
|
+
- Place immediately after opening `<?php` tag
|
|
16
|
+
|
|
17
|
+
**Example:**
|
|
18
|
+
```php
|
|
19
|
+
<?php
|
|
20
|
+
|
|
21
|
+
declare(strict_types=1);
|
|
22
|
+
|
|
23
|
+
namespace App\Services;
|
|
24
|
+
|
|
25
|
+
class UserService
|
|
26
|
+
{
|
|
27
|
+
// ...
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Benefits:**
|
|
32
|
+
- Prevents implicit type coercion
|
|
33
|
+
- Catches type errors early
|
|
34
|
+
- Improves code reliability
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Function and Method Type Hints
|
|
39
|
+
|
|
40
|
+
### Parameter Type Declarations
|
|
41
|
+
|
|
42
|
+
**Rules:**
|
|
43
|
+
- Parameters SHOULD have type declarations
|
|
44
|
+
- Use scalar types: `int`, `float`, `string`, `bool`
|
|
45
|
+
- Use class/interface names for objects
|
|
46
|
+
- Use `array` for arrays (or specific array shapes in PHPDoc)
|
|
47
|
+
- Use `callable` for callbacks
|
|
48
|
+
- Use `iterable` for arrays or Traversable objects
|
|
49
|
+
|
|
50
|
+
**Examples:**
|
|
51
|
+
```php
|
|
52
|
+
// ✅ Good
|
|
53
|
+
function processUser(int $id, string $name, bool $isActive): void
|
|
54
|
+
{
|
|
55
|
+
// ...
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function saveOrder(Order $order, PaymentGatewayInterface $gateway): bool
|
|
59
|
+
{
|
|
60
|
+
// ...
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function filterItems(array $items, callable $callback): array
|
|
64
|
+
{
|
|
65
|
+
return array_filter($items, $callback);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// ❌ Bad
|
|
69
|
+
function processUser($id, $name, $isActive) // No type hints
|
|
70
|
+
{
|
|
71
|
+
// ...
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Return Type Declarations
|
|
76
|
+
|
|
77
|
+
**Rules:**
|
|
78
|
+
- Return types SHOULD be declared for all methods
|
|
79
|
+
- Use `void` for methods that don't return a value
|
|
80
|
+
- Use specific types instead of `mixed` when possible
|
|
81
|
+
- Use `never` for methods that always throw or exit (PHP 8.1+)
|
|
82
|
+
|
|
83
|
+
**Examples:**
|
|
84
|
+
```php
|
|
85
|
+
// ✅ Good
|
|
86
|
+
function getUserById(int $id): ?User
|
|
87
|
+
{
|
|
88
|
+
return User::find($id);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function calculateTotal(array $items): float
|
|
92
|
+
{
|
|
93
|
+
return array_sum(array_column($items, 'price'));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function logMessage(string $message): void
|
|
97
|
+
{
|
|
98
|
+
error_log($message);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function throwError(): never
|
|
102
|
+
{
|
|
103
|
+
throw new RuntimeException('Fatal error');
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// ❌ Bad
|
|
107
|
+
function getUserById(int $id) // No return type
|
|
108
|
+
{
|
|
109
|
+
return User::find($id);
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Nullable Types
|
|
116
|
+
|
|
117
|
+
### Nullable Type Syntax
|
|
118
|
+
|
|
119
|
+
**Rules:**
|
|
120
|
+
- Use `?Type` syntax for nullable types
|
|
121
|
+
- Nullable types indicate the value can be `null`
|
|
122
|
+
- Place `?` before the type name
|
|
123
|
+
|
|
124
|
+
**Examples:**
|
|
125
|
+
```php
|
|
126
|
+
// ✅ Good
|
|
127
|
+
function findUser(int $id): ?User
|
|
128
|
+
{
|
|
129
|
+
return User::find($id) ?: null;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function processData(?string $input): string
|
|
133
|
+
{
|
|
134
|
+
return $input ?? 'default';
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
class User
|
|
138
|
+
{
|
|
139
|
+
public function __construct(
|
|
140
|
+
public string $name,
|
|
141
|
+
public ?string $email = null,
|
|
142
|
+
public ?DateTime $birthDate = null
|
|
143
|
+
) {}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// ❌ Bad
|
|
147
|
+
function findUser(int $id): User // Should be nullable
|
|
148
|
+
{
|
|
149
|
+
return User::find($id) ?: null; // Can return null
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Union Types (PHP 8.0+)
|
|
156
|
+
|
|
157
|
+
### Union Type Syntax
|
|
158
|
+
|
|
159
|
+
**Rules:**
|
|
160
|
+
- Use `Type1|Type2` syntax for union types
|
|
161
|
+
- Union types allow multiple possible types
|
|
162
|
+
- Order types from most specific to least specific
|
|
163
|
+
- Use when a parameter or return can be multiple types
|
|
164
|
+
|
|
165
|
+
**Examples:**
|
|
166
|
+
```php
|
|
167
|
+
// ✅ Good
|
|
168
|
+
function formatValue(int|float $value): string
|
|
169
|
+
{
|
|
170
|
+
return number_format($value, 2);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function processInput(string|array $data): array
|
|
174
|
+
{
|
|
175
|
+
return is_array($data) ? $data : [$data];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function findRecord(int|string $identifier): ?User
|
|
179
|
+
{
|
|
180
|
+
return is_int($identifier)
|
|
181
|
+
? User::find($identifier)
|
|
182
|
+
: User::where('email', $identifier)->first();
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Union with null (alternative to nullable syntax)
|
|
186
|
+
function getValue(): int|string|null
|
|
187
|
+
{
|
|
188
|
+
// ...
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// ❌ Bad
|
|
192
|
+
function formatValue($value): string // Should specify int|float
|
|
193
|
+
{
|
|
194
|
+
return number_format($value, 2);
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Intersection Types (PHP 8.1+)
|
|
201
|
+
|
|
202
|
+
### Intersection Type Syntax
|
|
203
|
+
|
|
204
|
+
**Rules:**
|
|
205
|
+
- Use `Type1&Type2` syntax for intersection types
|
|
206
|
+
- Intersection types require all types to be satisfied
|
|
207
|
+
- Commonly used with interfaces
|
|
208
|
+
|
|
209
|
+
**Examples:**
|
|
210
|
+
```php
|
|
211
|
+
// ✅ Good
|
|
212
|
+
interface Loggable
|
|
213
|
+
{
|
|
214
|
+
public function log(): void;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
interface Cacheable
|
|
218
|
+
{
|
|
219
|
+
public function cache(): void;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
function processEntity(Loggable&Cacheable $entity): void
|
|
223
|
+
{
|
|
224
|
+
$entity->log();
|
|
225
|
+
$entity->cache();
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Property Type Declarations (PHP 7.4+)
|
|
232
|
+
|
|
233
|
+
### Typed Properties
|
|
234
|
+
|
|
235
|
+
**Rules:**
|
|
236
|
+
- Class properties SHOULD have type declarations
|
|
237
|
+
- Typed properties enforce type at assignment
|
|
238
|
+
- Uninitialized typed properties throw error if accessed
|
|
239
|
+
|
|
240
|
+
**Examples:**
|
|
241
|
+
```php
|
|
242
|
+
// ✅ Good
|
|
243
|
+
class User
|
|
244
|
+
{
|
|
245
|
+
private int $id;
|
|
246
|
+
private string $name;
|
|
247
|
+
private ?string $email = null;
|
|
248
|
+
private array $roles = [];
|
|
249
|
+
private DateTime $createdAt;
|
|
250
|
+
|
|
251
|
+
public function __construct(int $id, string $name)
|
|
252
|
+
{
|
|
253
|
+
$this->id = $id;
|
|
254
|
+
$this->name = $name;
|
|
255
|
+
$this->createdAt = new DateTime();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// ❌ Bad
|
|
260
|
+
class User
|
|
261
|
+
{
|
|
262
|
+
private $id; // No type
|
|
263
|
+
private $name; // No type
|
|
264
|
+
private $email; // No type
|
|
265
|
+
}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Readonly Properties (PHP 8.1+)
|
|
269
|
+
|
|
270
|
+
**Rules:**
|
|
271
|
+
- Use `readonly` for properties that should not change after initialization
|
|
272
|
+
- Readonly properties can only be initialized once
|
|
273
|
+
- Readonly properties must have a type declaration
|
|
274
|
+
|
|
275
|
+
**Examples:**
|
|
276
|
+
```php
|
|
277
|
+
// ✅ Good
|
|
278
|
+
class User
|
|
279
|
+
{
|
|
280
|
+
public function __construct(
|
|
281
|
+
public readonly int $id,
|
|
282
|
+
public readonly string $name,
|
|
283
|
+
public readonly DateTime $createdAt
|
|
284
|
+
) {}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// ❌ Bad - trying to modify readonly
|
|
288
|
+
$user = new User(1, 'John', new DateTime());
|
|
289
|
+
$user->name = 'Jane'; // Error: Cannot modify readonly property
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Constructor Property Promotion (PHP 8.0+)
|
|
295
|
+
|
|
296
|
+
**Rules:**
|
|
297
|
+
- Use promoted properties to reduce boilerplate
|
|
298
|
+
- Combine parameter declaration with property declaration
|
|
299
|
+
- Works with visibility modifiers and type declarations
|
|
300
|
+
|
|
301
|
+
**Examples:**
|
|
302
|
+
```php
|
|
303
|
+
// ✅ Good (PHP 8.0+)
|
|
304
|
+
class User
|
|
305
|
+
{
|
|
306
|
+
public function __construct(
|
|
307
|
+
private int $id,
|
|
308
|
+
private string $name,
|
|
309
|
+
private ?string $email = null,
|
|
310
|
+
private array $roles = []
|
|
311
|
+
) {}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// ❌ Verbose (old style)
|
|
315
|
+
class User
|
|
316
|
+
{
|
|
317
|
+
private int $id;
|
|
318
|
+
private string $name;
|
|
319
|
+
private ?string $email;
|
|
320
|
+
private array $roles;
|
|
321
|
+
|
|
322
|
+
public function __construct(int $id, string $name, ?string $email = null, array $roles = [])
|
|
323
|
+
{
|
|
324
|
+
$this->id = $id;
|
|
325
|
+
$this->name = $name;
|
|
326
|
+
$this->email = $email;
|
|
327
|
+
$this->roles = $roles;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
```
|
|
331
|
+
|