[{"data":1,"prerenderedAt":847},["ShallowReactive",2],{"post-\u002Fintroduction-to-php-namespaces-a-beginners-guide-to-structuring-your-code":3},{"page":4,"translation":705,"nav":719,"related":832,"random":840},{"id":5,"title":6,"body":7,"categories":703,"category":705,"date":706,"description":707,"draft":708,"extension":709,"image":710,"kind":705,"lang":711,"meta":712,"navigation":111,"path":713,"readingTime":115,"seo":714,"slug":715,"stem":715,"tags":716,"translationKey":705,"type":704,"updated":717,"__hash__":718},"posts\u002Fintroduction-to-php-namespaces-a-beginners-guide-to-structuring-your-code.md","Introduction to PHP Namespaces: A Beginner's Guide to Structuring Your Code",{"type":8,"value":9,"toc":683},"minimark",[10,14,65,68,73,83,143,158,160,164,167,172,175,189,196,202,225,232,238,270,272,276,283,315,317,321,342,406,417,419,423,434,441,495,498,512,514,518,591,593,597,605,619,623,630,634,641,664,666,671,679],[11,12,13],"p",{},"Namespaces in PHP are a vital mechanism for organizing and structuring your codebase. They allow you to group related classes, interfaces, functions, and constants together, acting like virtual directories for your code. Introduced in PHP 5.3, namespaces have become a core pillar of modern PHP development.",[15,16,17,24],"blockquote",{},[11,18,19,20],{},"💡 ",[21,22,23],"strong",{},"Summary (TL;DR):",[25,26,27,34,49,55],"ul",{},[28,29,30,33],"li",{},[21,31,32],{},"Core Purpose:"," To avoid naming collisions between identical class or function names, especially when integrating third-party packages.",[28,35,36,39,40,44,45,48],{},[21,37,38],{},"How it Works:"," Uses the ",[41,42,43],"code",{},"namespace"," keyword to define virtual paths, and the ",[41,46,47],{},"use"," statement to import classes or apply aliases.",[28,50,51,54],{},[21,52,53],{},"PSR-4 Standard:"," Namespaces are the engine behind modern autoloading. The folder structure maps directly to the namespace path.",[28,56,57,60,61],{},[21,58,59],{},"Motto:"," ",[62,63,64],"em",{},"Virtual directories for code: no collisions, clean autoloading.",[66,67],"hr",{},[69,70,72],"h2",{"id":71},"_1-creating-a-namespace","1. Creating a Namespace",[11,74,75,76,78,79,82],{},"To declare a namespace, you must place the ",[41,77,43],{}," keyword at the very top of your PHP file, right after the opening ",[41,80,81],{},"\u003C?php"," tag.",[84,85,90],"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-php shiki shiki-themes github-light github-dark","\u003C?php\nnamespace MyApp\\Controllers;\n\nclass UsersController {\n    public function index() {\n        return \"List of users\";\n    }\n}\n","php","",[41,91,92,100,106,113,119,125,131,137],{"__ignoreMap":89},[93,94,97],"span",{"class":95,"line":96},"line",1,[93,98,99],{},"\u003C?php\n",[93,101,103],{"class":95,"line":102},2,[93,104,105],{},"namespace MyApp\\Controllers;\n",[93,107,109],{"class":95,"line":108},3,[93,110,112],{"emptyLinePlaceholder":111},true,"\n",[93,114,116],{"class":95,"line":115},4,[93,117,118],{},"class UsersController {\n",[93,120,122],{"class":95,"line":121},5,[93,123,124],{},"    public function index() {\n",[93,126,128],{"class":95,"line":127},6,[93,129,130],{},"        return \"List of users\";\n",[93,132,134],{"class":95,"line":133},7,[93,135,136],{},"    }\n",[93,138,140],{"class":95,"line":139},8,[93,141,142],{},"}\n",[11,144,145,146,149,150,153,154,157],{},"In this example, we created the namespace ",[41,147,148],{},"MyApp\\Controllers",". Within this space, we defined the class ",[41,151,152],{},"UsersController",". Its fully-qualified name (FQN) is now ",[41,155,156],{},"\\MyApp\\Controllers\\UsersController",".",[66,159],{},[69,161,163],{"id":162},"_2-using-classes-from-a-namespace","2. Using Classes from a Namespace",[11,165,166],{},"To use a namespaced class in another file, you have three options.",[168,169,171],"h3",{"id":170},"option-a-fully-qualified-name-fqn","Option A: Fully-Qualified Name (FQN)",[11,173,174],{},"Call the class by referencing its absolute path, starting with a backslash:",[84,176,178],{"className":86,"code":177,"language":88,"meta":89,"style":89},"\u003C?php\n$controller = new \\MyApp\\Controllers\\UsersController();\n",[41,179,180,184],{"__ignoreMap":89},[93,181,182],{"class":95,"line":96},[93,183,99],{},[93,185,186],{"class":95,"line":102},[93,187,188],{},"$controller = new \\MyApp\\Controllers\\UsersController();\n",[168,190,192,193,195],{"id":191},"option-b-the-use-statement-recommended","Option B: The ",[41,194,47],{}," Statement (Recommended)",[11,197,198,199,201],{},"Import the class using the ",[41,200,47],{}," keyword. This lets you reference the class directly without the full path prefix:",[84,203,205],{"className":86,"code":204,"language":88,"meta":89,"style":89},"\u003C?php\nuse MyApp\\Controllers\\UsersController;\n\n$controller = new UsersController();\n",[41,206,207,211,216,220],{"__ignoreMap":89},[93,208,209],{"class":95,"line":96},[93,210,99],{},[93,212,213],{"class":95,"line":102},[93,214,215],{},"use MyApp\\Controllers\\UsersController;\n",[93,217,218],{"class":95,"line":108},[93,219,112],{"emptyLinePlaceholder":111},[93,221,222],{"class":95,"line":115},[93,223,224],{},"$controller = new UsersController();\n",[168,226,228,229],{"id":227},"option-c-aliasing-with-as","Option C: Aliasing with ",[41,230,231],{},"as",[11,233,234,235,237],{},"If you have two classes with the same name (e.g., two ",[41,236,152],{}," classes from different domains), you can alias one of them to prevent local conflicts:",[84,239,241],{"className":86,"code":240,"language":88,"meta":89,"style":89},"\u003C?php\nuse MyApp\\Controllers\\UsersController;\nuse LegacyApp\\Controllers\\UsersController as LegacyController;\n\n$user = new UsersController();\n$legacyUser = new LegacyController();\n",[41,242,243,247,251,256,260,265],{"__ignoreMap":89},[93,244,245],{"class":95,"line":96},[93,246,99],{},[93,248,249],{"class":95,"line":102},[93,250,215],{},[93,252,253],{"class":95,"line":108},[93,254,255],{},"use LegacyApp\\Controllers\\UsersController as LegacyController;\n",[93,257,258],{"class":95,"line":115},[93,259,112],{"emptyLinePlaceholder":111},[93,261,262],{"class":95,"line":121},[93,263,264],{},"$user = new UsersController();\n",[93,266,267],{"class":95,"line":127},[93,268,269],{},"$legacyUser = new LegacyController();\n",[66,271],{},[69,273,275],{"id":274},"_3-subnamespaces","3. Subnamespaces",[11,277,278,279,282],{},"You can build deeper structures by declaring subnamespaces, separating them with a backslash ",[41,280,281],{},"\\",":",[84,284,286],{"className":86,"code":285,"language":88,"meta":89,"style":89},"\u003C?php\nnamespace MyApp\\Controllers\\Admin;\n\nclass DashboardController {\n    \u002F\u002F Admin dashboard logic\n}\n",[41,287,288,292,297,301,306,311],{"__ignoreMap":89},[93,289,290],{"class":95,"line":96},[93,291,99],{},[93,293,294],{"class":95,"line":102},[93,295,296],{},"namespace MyApp\\Controllers\\Admin;\n",[93,298,299],{"class":95,"line":108},[93,300,112],{"emptyLinePlaceholder":111},[93,302,303],{"class":95,"line":115},[93,304,305],{},"class DashboardController {\n",[93,307,308],{"class":95,"line":121},[93,309,310],{},"    \u002F\u002F Admin dashboard logic\n",[93,312,313],{"class":95,"line":127},[93,314,142],{},[66,316],{},[69,318,320],{"id":319},"_4-the-global-namespace","4. The Global Namespace",[11,322,323,324,327,328,331,332,335,336,338,339,157],{},"When code is written inside a namespace, PHP assumes any referenced class belongs to the ",[62,325,326],{},"current"," namespace. If you want to use a core PHP class (like ",[41,329,330],{},"DateTime"," or ",[41,333,334],{},"Exception","), you must prefix it with a backslash ",[41,337,281],{}," to tell PHP to look in the ",[21,340,341],{},"Global Namespace",[84,343,345],{"className":86,"code":344,"language":88,"meta":89,"style":89},"\u003C?php\nnamespace MyApp\\Services;\n\nclass OrderService {\n    public function process() {\n        \u002F\u002F Correct: references the global DateTime class\n        $date = new \\DateTime(); \n\n        \u002F\u002F Correct: throws the global Exception class\n        throw new \\Exception(\"Processing failed.\");\n    }\n}\n",[41,346,347,351,356,360,365,370,375,380,384,390,396,401],{"__ignoreMap":89},[93,348,349],{"class":95,"line":96},[93,350,99],{},[93,352,353],{"class":95,"line":102},[93,354,355],{},"namespace MyApp\\Services;\n",[93,357,358],{"class":95,"line":108},[93,359,112],{"emptyLinePlaceholder":111},[93,361,362],{"class":95,"line":115},[93,363,364],{},"class OrderService {\n",[93,366,367],{"class":95,"line":121},[93,368,369],{},"    public function process() {\n",[93,371,372],{"class":95,"line":127},[93,373,374],{},"        \u002F\u002F Correct: references the global DateTime class\n",[93,376,377],{"class":95,"line":133},[93,378,379],{},"        $date = new \\DateTime(); \n",[93,381,382],{"class":95,"line":139},[93,383,112],{"emptyLinePlaceholder":111},[93,385,387],{"class":95,"line":386},9,[93,388,389],{},"        \u002F\u002F Correct: throws the global Exception class\n",[93,391,393],{"class":95,"line":392},10,[93,394,395],{},"        throw new \\Exception(\"Processing failed.\");\n",[93,397,399],{"class":95,"line":398},11,[93,400,136],{},[93,402,404],{"class":95,"line":403},12,[93,405,142],{},[11,407,408,409,412,413,416],{},"If you omit the leading backslash (",[41,410,411],{},"new DateTime()","), PHP will look for ",[41,414,415],{},"\\MyApp\\Services\\DateTime"," and throw a \"Class not found\" exception.",[66,418],{},[69,420,422],{"id":421},"_5-namespaces-and-composer-autoloading-psr-4","5. Namespaces and Composer Autoloading (PSR-4)",[11,424,425,426,429,430,433],{},"In modern PHP development, namespaces are rarely loaded manually via ",[41,427,428],{},"require"," statements. Instead, they follow the ",[21,431,432],{},"PSR-4 autoloading standard"," managed by Composer.",[11,435,436,437,440],{},"You define how your namespaces map to physical folders in your project's ",[41,438,439],{},"composer.json"," file:",[84,442,446],{"className":443,"code":444,"language":445,"meta":89,"style":89},"language-json shiki shiki-themes github-light github-dark","{\n    \"autoload\": {\n        \"psr-4\": {\n            \"MyApp\\\\\": \"src\u002F\"\n        }\n    }\n}\n","json",[41,447,448,454,463,470,482,487,491],{"__ignoreMap":89},[93,449,450],{"class":95,"line":96},[93,451,453],{"class":452},"sVt8B","{\n",[93,455,456,460],{"class":95,"line":102},[93,457,459],{"class":458},"sj4cs","    \"autoload\"",[93,461,462],{"class":452},": {\n",[93,464,465,468],{"class":95,"line":108},[93,466,467],{"class":458},"        \"psr-4\"",[93,469,462],{"class":452},[93,471,472,475,478],{"class":95,"line":115},[93,473,474],{"class":458},"            \"MyApp\\\\\"",[93,476,477],{"class":452},": ",[93,479,481],{"class":480},"sZZnC","\"src\u002F\"\n",[93,483,484],{"class":95,"line":121},[93,485,486],{"class":452},"        }\n",[93,488,489],{"class":95,"line":127},[93,490,136],{"class":452},[93,492,493],{"class":95,"line":133},[93,494,142],{"class":452},[11,496,497],{},"Under this configuration:",[25,499,500,509],{},[28,501,502,505,506,157],{},[41,503,504],{},"MyApp\\Controllers\\UsersController"," maps physically to the file ",[41,507,508],{},"src\u002FControllers\u002FUsersController.php",[28,510,511],{},"Autoloading is handled automatically behind the scenes as long as your class names matches their file names exactly.",[66,513],{},[69,515,517],{"id":516},"namespace-terminology-matrix","Namespace Terminology Matrix",[519,520,521,538],"table",{},[522,523,524],"thead",{},[525,526,527,532,535],"tr",{},[528,529,531],"th",{"align":530},"left","Name Type",[528,533,534],{"align":530},"Example",[528,536,537],{"align":530},"Resolution Logic",[539,540,541,559,577],"tbody",{},[525,542,543,549,553],{},[544,545,546],"td",{"align":530},[21,547,548],{},"Unqualified Name",[544,550,551],{"align":530},[41,552,152],{},[544,554,555,556,558],{"align":530},"Resolves relative to the current namespace (or imported ",[41,557,47],{}," alias).",[525,560,561,566,571],{},[544,562,563],{"align":530},[21,564,565],{},"Qualified Name",[544,567,568],{"align":530},[41,569,570],{},"Controllers\\UsersController",[544,572,573,574,576],{"align":530},"Appends to the current namespace (e.g., ",[41,575,504],{},").",[525,578,579,584,588],{},[544,580,581],{"align":530},[21,582,583],{},"Fully-Qualified Name (FQN)",[544,585,586],{"align":530},[41,587,156],{},[544,589,590],{"align":530},"Resolves absolutely from the root global space.",[66,592],{},[69,594,596],{"id":595},"frequently-asked-questions","Frequently Asked Questions",[168,598,600,601,604],{"id":599},"why-do-i-see-a-backslash-before-functions-like-strlen","Why do I see a backslash before functions like ",[41,602,603],{},"\\strlen()","?",[11,606,607,608,611,612,615,616,618],{},"PHP has a fallback mechanism for functions and constants. If you call ",[41,609,610],{},"strlen()"," inside a namespace, PHP first looks for a local definition (",[41,613,614],{},"\\MyApp\\strlen()","), and if missing, falls back to the global function. Adding a leading backslash (",[41,617,603],{},") bypasses this fallback check, offering a tiny micro-optimization and making it explicit that you are invoking the global core function.",[168,620,622],{"id":621},"can-i-declare-multiple-namespaces-in-a-single-file","Can I declare multiple namespaces in a single file?",[11,624,625,626,629],{},"Yes, you can separate them using bracket syntax. However, this is considered a ",[21,627,628],{},"bad practice",". Standard coding guidelines (such as PSR-12) mandate that every PHP class or namespace should reside in its own dedicated file to keep the codebase clean and compatible with PSR-4 autoloading.",[168,631,633],{"id":632},"how-can-i-access-the-current-namespace-name-programmatically","How can I access the current namespace name programmatically?",[11,635,636,637,640],{},"You can use the magic constant ",[41,638,639],{},"__NAMESPACE__"," which returns a string containing the current namespace name:",[84,642,644],{"className":86,"code":643,"language":88,"meta":89,"style":89},"\u003C?php\nnamespace MyApp;\n\necho __NAMESPACE__; \u002F\u002F Outputs: MyApp\n",[41,645,646,650,655,659],{"__ignoreMap":89},[93,647,648],{"class":95,"line":96},[93,649,99],{},[93,651,652],{"class":95,"line":102},[93,653,654],{},"namespace MyApp;\n",[93,656,657],{"class":95,"line":108},[93,658,112],{"emptyLinePlaceholder":111},[93,660,661],{"class":95,"line":115},[93,662,663],{},"echo __NAMESPACE__; \u002F\u002F Outputs: MyApp\n",[66,665],{},[667,668,670],"h5",{"id":669},"changelog","Changelog",[25,672,673,676],{},[28,674,675],{},"2026-06-20: Modernized article structure. Removed visual ChatGPT residues (\"Copy code\"). Fixed missing global namespace escape backslashes. Added Composer PSR-4 mapping workflow, terminology table, and improved FAQ context.",[28,677,678],{},"2023-01-13: Article published.",[680,681,682],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":89,"searchDepth":102,"depth":102,"links":684},[685,686,693,694,695,696,697],{"id":71,"depth":102,"text":72},{"id":162,"depth":102,"text":163,"children":687},[688,689,691],{"id":170,"depth":108,"text":171},{"id":191,"depth":108,"text":690},"Option B: The use Statement (Recommended)",{"id":227,"depth":108,"text":692},"Option C: Aliasing with as",{"id":274,"depth":102,"text":275},{"id":319,"depth":102,"text":320},{"id":421,"depth":102,"text":422},{"id":516,"depth":102,"text":517},{"id":595,"depth":102,"text":596,"children":698},[699,701,702],{"id":599,"depth":108,"text":700},"Why do I see a backslash before functions like \\strlen()?",{"id":621,"depth":108,"text":622},{"id":632,"depth":108,"text":633},[704],"technical",null,"2023-01-13","Learn how to use PHP namespaces to prevent naming conflicts, organize codebase structure, and configure Composer PSR-4 autoloading.",false,"md","\u002Fimages\u002Fhero\u002Fphp-namespaces.avif","en",{},"\u002Fintroduction-to-php-namespaces-a-beginners-guide-to-structuring-your-code",{"title":6,"description":707},"introduction-to-php-namespaces-a-beginners-guide-to-structuring-your-code",[43,88],"2026-06-20","qkn0nfPazp4hw5VYlc-IGXVYZdg_PYpbT5DckI-jCrM",{"prev":720,"next":723,"others":726,"lucky":831,"readingTime":115},{"path":721,"title":722},"\u002Fci-cd-for-php-a-comprehensive-guide","CI\u002FCD for PHP: A Comprehensive Guide",{"path":724,"title":725},"\u002Fwhat-is-graylog-a-powerful-tool-for-collecting-indexing-and-analyzing-log-data","What is Graylog? A Powerful Tool for Collecting, Indexing, and Analyzing Log Data",[727,730,733,736,739,742,745,748,751,754,757,760,763,766,769,772,775,778,779,780,783,786,789,792,795,798,801,804,807,810,813,816,819,822,825,828],{"path":728,"title":729},"\u002Ffull-stack-project-development","Sample REST API Project",{"path":731,"title":732},"\u002Frest-api-authentication","How to Perform REST API Authentication?",{"path":734,"title":735},"\u002Frest-api-design","REST API Design: Principles and Output Format",{"path":737,"title":738},"\u002Frest-api-documentation-and-testing","How to Document and Test a REST API?",{"path":740,"title":741},"\u002Frest-api-error-handling","How to Perform REST API Error Handling?",{"path":743,"title":744},"\u002Frest-api-security","How to Secure a REST API?",{"path":746,"title":747},"\u002Frest-api-uri-structure","What Should the REST API URI Structure Be?",{"path":749,"title":750},"\u002Ftroubleshooting-cyberpanel-inaccessibility-after-ubuntu-release-upgrade","Troubleshooting CyberPanel Inaccessibility After Ubuntu Release Upgrade",{"path":752,"title":753},"\u002Freset-wordpress-admin-password-using-wp-cli","Reset WordPress Admin Password Using WP-CLI",{"path":755,"title":756},"\u002Fgraphql-vs-rest-api-which-is-the-best-choice-for-headless-wordpress","GraphQL vs REST API: Which is the Best Choice for Headless WordPress?",{"path":758,"title":759},"\u002Fgrow-your-business-in-turkey-with-expert-wordpress-plugin-and-theme-localization-and-support-services","Grow Your Business in Turkey with Expert WordPress Plugin and Theme Localization and Support Services",{"path":761,"title":762},"\u002Fgetting-started-with-devops-understanding-the-principles-and-adopting-the-tools","Getting Started with DevOps: Understanding the Principles and Adopting the Tools",{"path":764,"title":765},"\u002Fphp-graphql-development-advanced-techniques-for-optimizing-your-apis","PHP GraphQL Development: Advanced Techniques for Optimizing Your APIs",{"path":767,"title":768},"\u002Fadvanced-techniques-for-dependency-injection-in-php-tips-code-samples-and-faqs","Advanced Techniques for Dependency Injection in PHP: Tips, Code Samples, and FAQs",{"path":770,"title":771},"\u002Fmaximize-the-potential-of-headless-wordpress-with-graphql","Maximize the Potential of Headless WordPress with GraphQL",{"path":773,"title":774},"\u002Fwriting-clean-modular-and-reusable-code-in-php","Best Practices for Writing Clean, Modular, and Reusable Code in PHP",{"path":776,"title":777},"\u002Fheadless-cmss-an-overview-of-popular-alternatives-to-contentful-and-wordpress","Headless CMSs: An Overview of Popular Alternatives to Contentful and WordPress",{"path":721,"title":722},{"path":724,"title":725},{"path":781,"title":782},"\u002Felevate-your-turkish-audience-experience-with-professional-wordpress-plugin-and-theme-translation","Elevate Your Turkish Audience Experience with Professional WordPress Plugin and Theme Translation",{"path":784,"title":785},"\u002Fhow-to-set-up-a-self-hosted-api-gateway-a-comprehensive-guide","How to Set Up a Self-Hosted API Gateway: A Comprehensive Guide",{"path":787,"title":788},"\u002Fdifference-between-generators-and-iterators-in-php","The Key Differences Between PHP Generators and Iterators",{"path":790,"title":791},"\u002Fphp-and-machine-learning-a-winning-combination-with-php-ml","PHP and Machine Learning: A Winning Combination with PHP-ML",{"path":793,"title":794},"\u002Fphp-generators-a-beginners-guide-to-iteration","PHP Generators: A Beginner's Guide to Iteration",{"path":796,"title":797},"\u002Fmastering-closures-in-javascript-a-beginners-guide","Mastering Closures in JavaScript: A Beginner's Guide",{"path":799,"title":800},"\u002Fthe-top-php-certification-programs-for-developers","The Top PHP Certification Programs for Developers",{"path":802,"title":803},"\u002Fhow-to-revalidate-next-js-isr-cache-on-demand-cache-regeneration","How to Revalidate Next.js ISR Cache? On-Demand Cache Regeneration",{"path":805,"title":806},"\u002Ftips-for-translating-a-wordpress-plugin-wordpress-theme-to-turkish","Tips for Translating a WordPress Plugin \u002F WordPress Theme to Turkish",{"path":808,"title":809},"\u002Fall-about-headless-wordpress","All About Headless WordPress",{"path":811,"title":812},"\u002Finstall-composer-on-ubuntu","How to Install Composer on Ubuntu \u002F Linux",{"path":814,"title":815},"\u002Fwhat-is-an-api-gateway","What is an API Gateway? Should You Use It?",{"path":817,"title":818},"\u002Fis-jwt-safe-or-is-it-vulnerable","Is JWT Safe or Is It Vulnerable?",{"path":820,"title":821},"\u002Ftailwind-css-to-use-or-not-to-use-that-is-the-question","Tailwind CSS! To use? Or not to use? That is the question.",{"path":823,"title":824},"\u002Fwhat-is-hateoas","What is HATEOAS?",{"path":826,"title":827},"\u002Fhello-world","Hello World: A New Multilingual Journey",{"path":829,"title":830},"\u002Fwhat-is-ecmascript","What is ECMAScript? What is not?",{"path":808,"title":809},[833,834,836,838],{"path":728,"title":729,"date":717},{"path":764,"title":765,"date":835},"2023-01-19",{"path":773,"title":774,"date":837},"2023-01-17",{"path":793,"title":794,"date":839},"2023-01-10",[841,843,845],{"path":826,"title":827,"date":842},"2022-05-11",{"path":799,"title":800,"date":844},"2023-01-09",{"path":767,"title":768,"date":846},"2023-01-18",1782141980677]