From 18885612a9b13e4b0aea536cf66897365dfbfe64 Mon Sep 17 00:00:00 2001 From: OStefan2001 Date: Fri, 7 Aug 2026 13:12:38 +0300 Subject: [PATCH 1/3] Remove / at the end when it is used id --- .../listen-for-android-install-referrer.jsonld.twig | 4 ++-- ...ers-in-the-same-app-for-the-same-action.jsonld.twig | 4 ++-- ...vider-bootstrap-modern-php-applications.jsonld.twig | 4 ++-- ...ifecycle-for-a-mezzio-based-application.jsonld.twig | 4 ++-- .../architecture/understanding-middleware.jsonld.twig | 4 ++-- .../templates/page/JSON-LD/author-resource.jsonld.twig | 10 +++++----- .../best-practice/aptana-set-svn-keywords.jsonld.twig | 4 ++-- ...security-in-dotkernel-headless-platform.jsonld.twig | 4 ++-- ...golden-rules-of-professional-php-coding.jsonld.twig | 4 ++-- .../htaccess-301-redirect-non-www-to-www.jsonld.twig | 4 ++-- ...t-update-delete-statements-with-zend-db.jsonld.twig | 4 ++-- .../sql-queries-using-zend-db-select.jsonld.twig | 4 ++-- .../best-practice/subqueries-with-zend-db.jsonld.twig | 4 ++-- .../svn-export-in-a-virtual-host.jsonld.twig | 4 ++-- ...n-keywords-setup-in-php-ide-zend-studio.jsonld.twig | 4 ++-- .../using-like-wildcards-with-zend-db.jsonld.twig | 4 ++-- ...urning-the-fetch-functions-from-zend-db.jsonld.twig | 4 ++-- ...estamp-on-a-field-that-record-date-time.jsonld.twig | 4 ++-- ...inas-mvc-is-retiring-consider-it-solved.jsonld.twig | 4 ++-- src/Blog/templates/page/JSON-LD/blog.jsonld.twig | 8 ++++---- src/Blog/templates/page/JSON-LD/categories.jsonld.twig | 8 ++++---- .../page/JSON-LD/category-resource.jsonld.twig | 8 ++++---- src/Blog/templates/page/JSON-LD/contact.jsonld.twig | 6 +++--- ...-client-migration-from-postman-to-bruno.jsonld.twig | 4 ++-- .../api-endpoint-to-collect-client-errors.jsonld.twig | 4 ++-- ...ntent-negotiation-in-dotkernel-rest-api.jsonld.twig | 4 ++-- .../dotkernel-api-1-0-0-released.jsonld.twig | 4 ++-- ...dotkernel-api-client-side-authorization.jsonld.twig | 4 ++-- ...dotkernel-api-server-side-authorization.jsonld.twig | 4 ++-- .../dotkernel-api-versus-laminas-api-tools.jsonld.twig | 2 +- ...ror-reporting-endpoint-in-dotkernel-api.jsonld.twig | 2 +- ...to-implement-mailchimp-in-dotkernel-api.jsonld.twig | 4 ++-- ...openapi-implementation-in-dotkernel-api.jsonld.twig | 4 ++-- .../dotkernel-packages-oss-lifecycle.jsonld.twig | 6 +++--- ...-cors-implementation-to-zend-expressive.jsonld.twig | 4 ++-- ...g-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig | 4 ++-- ...poser-support-in-your-dotkernel-project.jsonld.twig | 4 ++-- ...browser-detection-in-dotkernel-projects.jsonld.twig | 4 ++-- ...n-using-cookie-remember-me-in-dotkernel.jsonld.twig | 4 ++-- ...through-bootstrap-of-non-existent-files.jsonld.twig | 4 ++-- ...ching-in-dotkernel-using-zend-framework.jsonld.twig | 4 ++-- ...melcase-table-names-in-mysql-on-windows.jsonld.twig | 4 ++-- ...end-certified-engineers-zce-in-our-team.jsonld.twig | 4 ++-- .../configuring-the-cache-in-dotkernel.jsonld.twig | 4 ++-- ...ade-easy-in-laminas-mezzio-applications.jsonld.twig | 4 ++-- ...cting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig | 4 ++-- ...able-wurfl-redirect-for-mobile-browsers.jsonld.twig | 4 ++-- ...ambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig | 4 ++-- .../doctrine-cache-using-symfony-cache.jsonld.twig | 4 ++-- ...ctrine-enum-implementation-in-dotkernel.jsonld.twig | 4 ++-- ...ts-and-services-north-american-relaunch.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-1-2-0-release.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-1-2-2-release.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-1-3-0-release.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-1-3-2-release.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-1-5-0-released.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig | 4 ++-- ...ernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-coding-standard.jsonld.twig | 4 ++-- ...l-database-naming-conventions-for-mysql.jsonld.twig | 4 ++-- ...o-microframework-and-laminas-components.jsonld.twig | 4 ++-- ...-best-choice-for-your-presentation-site.jsonld.twig | 4 ++-- .../JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig | 4 ++-- ...nel-reserved-variable-names-for-caching.jsonld.twig | 4 ++-- .../dotkernel/dotkernel-template-engine.jsonld.twig | 4 ++-- .../dotkernel-version-1-0-in-action.jsonld.twig | 4 ++-- ...-connections-and-character-set-in-mysql.jsonld.twig | 4 ++-- .../geoip-city-removed-from-dotkernel.jsonld.twig | 4 ++-- .../geoip-ip-address-location-in-dotkernel.jsonld.twig | 4 ++-- ...rrors-with-dot-errorhandler-and-dot-log.jsonld.twig | 4 ++-- ...ghcharts-integration-in-dotkernel-1-6-0.jsonld.twig | 4 ++-- ...o-group-log-files-by-date-using-dot-log.jsonld.twig | 4 ++-- ...ase-with-zend-framework-zend-db-adapter.jsonld.twig | 4 ++-- .../how-to-use-alerts-in-dotkernel.jsonld.twig | 4 ++-- ...d-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig | 4 ++-- ...extension-in-zend-server-5-6-on-windows.jsonld.twig | 4 ++-- ...p-extension-in-zend-server-6-on-windows.jsonld.twig | 4 ++-- ...ot-log-in-zend-expressive-and-dotkernel.jsonld.twig | 4 ++-- ...-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig | 4 ++-- ...ration-of-zend-framework-1-pear-channel.jsonld.twig | 4 ++-- .../new-features-in-zend-framework-1-12.jsonld.twig | 4 ++-- ...tter-and-templates-for-zend-studio-10-1.jsonld.twig | 4 ++-- ...ing-admin-folder-with-htaccess-in-plesk.jsonld.twig | 4 ++-- ...as-mail-with-symfony-mailer-in-dot-mail.jsonld.twig | 4 ++-- ...urfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig | 4 ++-- ...sing-dot-email-component-and-zend-email.jsonld.twig | 4 ++-- .../dotkernel/templating-in-dotkernel3.jsonld.twig | 4 ++-- .../page/JSON-LD/dotkernel/test-article.jsonld.twig | 4 ++-- ...ng-dotkernel-with-composer-dependencies.jsonld.twig | 4 ++-- .../using-utf8-charset-in-dotkernel.jsonld.twig | 4 ++-- ...fl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig | 4 ++-- ...api-license-incompatible-with-dotkernel.jsonld.twig | 4 ++-- ...nd-framework-integration-into-dotkernel.jsonld.twig | 4 ++-- ...th-and-zend-acl-integrated-in-dotkernel.jsonld.twig | 4 ++-- ...end-console-implementation-in-dotkernel.jsonld.twig | 4 ++-- ...rk-dropped-integration-of-wurfl-adapter.jsonld.twig | 4 ++-- .../zend-registry-usage-in-dotkernel.jsonld.twig | 4 ++-- ...dotkernel-refactor-of-dot-session-class.jsonld.twig | 4 ++-- ...tter-file-for-dotkernel-coding-standard.jsonld.twig | 4 ++-- .../development-report-december-11-2017.jsonld.twig | 4 ++-- .../JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig | 4 ++-- .../dotkernel-admin-version-3-launched.jsonld.twig | 4 ++-- ...tkernel-api-architecture-and-components.jsonld.twig | 2 +- .../dotkernel-frontend-version-3-launched.jsonld.twig | 2 +- .../dotkernel3-stable-release-version-1-0.jsonld.twig | 2 +- .../php-8-3-support-in-dotkernel-admin.jsonld.twig | 2 +- .../php-8-3-support-in-dotkernel-api.jsonld.twig | 4 ++-- .../php-8-3-support-in-dotkernel-frontend.jsonld.twig | 4 ++-- ...ry-admin-in-dotkernel-headless-platform.jsonld.twig | 4 ++-- ...the-root-of-dotkernel-headless-platform.jsonld.twig | 4 ++-- ...adless-platform-the-whats-hows-and-whys.jsonld.twig | 4 ++-- ...xecution-in-dotkernel-headless-platform.jsonld.twig | 4 ++-- ...maker-generate-common-code-in-dotkernel.jsonld.twig | 4 ++-- ...evolution-pattern-versus-api-versioning.jsonld.twig | 4 ++-- ...sed-one-time-password-totp-in-dotkernel.jsonld.twig | 4 ++-- ...ubmodule-in-dotkernel-headless-platform.jsonld.twig | 4 ++-- ...adds-postgresql-native-uuid-and-php-8-5.jsonld.twig | 4 ++-- ...cy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig | 4 ++-- ...reating-admin-accounts-in-dotkernel-api.jsonld.twig | 4 ++-- ...database-migrations-and-how-to-use-them.jsonld.twig | 4 ++-- .../doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig | 4 ++-- ...igration-without-dropping-custom-tables.jsonld.twig | 4 ++-- ...ly-url-in-an-generic-laminas-mezzio-app.jsonld.twig | 4 ++-- ...in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig | 4 ++-- ...ndpoints-in-dotkernel-api-using-dot-cli.jsonld.twig | 2 +- ...-zend-expressive-2-to-zend-expressive-3.jsonld.twig | 2 +- ...nsole-with-dot-cli-based-on-laminas-cli.jsonld.twig | 2 +- ...an-for-documentation-in-dotkernel-api-3.jsonld.twig | 2 +- ...sing-the-urlgenerator-work-in-fastroute.jsonld.twig | 2 +- .../what-is-cross-origin-token-redemption.jsonld.twig | 2 +- .../how-to/what-is-psr-7-and-how-to-use-it.jsonld.twig | 2 +- ...free-php-html-css-javascript-editor-ide.jsonld.twig | 2 +- .../JSON-LD/javascript/intro-to-jquery.jsonld.twig | 2 +- .../javascript/javascript-email-validator.jsonld.twig | 4 ++-- ...-versus-lgpl-in-practice-dotkernel-case.jsonld.twig | 4 ++-- ...provements-psr-15-handlers-vite-phpstan.jsonld.twig | 4 ++-- ...ic-routing-using-fastroute-in-dotkernel.jsonld.twig | 4 ++-- ...5-compliant-handlers-in-dotkernel-light.jsonld.twig | 4 ++-- ...-php-apache-mariadb-composer-phpmyadmin.jsonld.twig | 4 ++-- .../aptana-php-installation-in-aptana-2-x.jsonld.twig | 2 +- ...er-unicode-support-in-mysql-5-5-utf8mb4.jsonld.twig | 2 +- ...seeding-doctrine-data-fixtures-vs-phinx.jsonld.twig | 2 +- .../end-of-support-for-php-5-2-x-branch.jsonld.twig | 4 ++-- ...oint-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig | 4 ++-- .../how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig | 4 ++-- .../mezzio-app-development-in-wsl2.jsonld.twig | 4 ++-- ...ased-no-upgrade-possible-for-wampserver.jsonld.twig | 4 ++-- ...ironment-development-staging-production.jsonld.twig | 4 ++-- .../php-support-back-in-aptana-3-0.jsonld.twig | 4 ++-- ...ion-using-pdo-and-zend-framework-part-2.jsonld.twig | 4 ++-- ...-injection-using-pdo-and-zend-framework.jsonld.twig | 4 ++-- ...-to-mysql-server-on-plesk-based-servers.jsonld.twig | 4 ++-- ...c-analysis-replacing-psalm-with-phpstan.jsonld.twig | 4 ++-- ...-to-connect-to-dotkernel-tracker-mantis.jsonld.twig | 4 ++-- .../using-php-7-express-in-zend-studio-13.jsonld.twig | 4 ++-- ...-control-ignore-patterns-in-zend-studio.jsonld.twig | 4 ++-- ...end-certified-engineer-in-dotboost-team.jsonld.twig | 4 ++-- .../zend-server-5-5-quick-setup-on-windows.jsonld.twig | 4 ++-- ...x-installing-pear-packages-with-php-7-2.jsonld.twig | 4 ++-- ...s-the-intl-php-extension-problem-solved.jsonld.twig | 4 ++-- ...-quality-how-to-setup-phpcs-in-phpstorm.jsonld.twig | 2 +- ...debug-bar-a-very-helpfull-zf-debug-tool.jsonld.twig | 2 +- ...tting-pear-channel-for-zend-framework-1.jsonld.twig | 2 +- .../wurfl-php-api-libraries-gpl-versions.jsonld.twig | 2 +- ...ork-1-12-4-released-with-security-fixes.jsonld.twig | 2 +- .../zend-framework-1-7-0-released.jsonld.twig | 2 +- .../zend-framework-1-end-of-life.jsonld.twig | 2 +- ...r-accessible-repository-on-plesk-server.jsonld.twig | 2 +- ...ecurity-fixes-in-zend-framework-1-12-12.jsonld.twig | 2 +- ...based-one-time-password-totp-in-dotkernel.html.twig | 4 ++-- 170 files changed, 324 insertions(+), 324 deletions(-) diff --git a/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig b/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig index 428d7fc..96bd540 100644 --- a/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig b/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig index 90b1fa1..010ac70 100644 --- a/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig b/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig index a568518..a142dea 100644 --- a/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig b/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig index 0143fb9..a2e8484 100644 --- a/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig b/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig index 826f1d9..8f21eb4 100644 --- a/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/author-resource.jsonld.twig b/src/Blog/templates/page/JSON-LD/author-resource.jsonld.twig index cbec3e2..911224c 100644 --- a/src/Blog/templates/page/JSON-LD/author-resource.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/author-resource.jsonld.twig @@ -2,14 +2,14 @@ { "@context": "https://schema.org", "@type": "ProfilePage", - "@id": "{{ absolute_url(path('page::author-resource', {slug: author.slug})) }}#webpage", - "url": "{{ absolute_url(path('page::author-resource', {slug: author.slug})) }}", - "isPartOf": { "@id": "{{ absolute_url('/') }}#website" }, + "@id": "{{ app.baseUrl ~ path('page::author-resource', {slug: author.slug}) }}#webpage", + "url": "{{ app.baseUrl ~ path('page::author-resource', {slug: author.slug}) }}", + "isPartOf": { "@id": "{{ app.baseUrl }}#website" }, "mainEntity": { "@type": "Person", "name": "{{ author.name }}", "github": "{{ author.github }}", - "url": "{{ absolute_url(path('page::author-resource', {slug: author.slug})) }}" + "url": "{{ app.baseUrl ~ path('page::author-resource', {slug: author.slug}) }}" }, "hasPart": { "@type": "ItemList", @@ -18,7 +18,7 @@ { "@type": "ListItem", "position": {{ loop.index }}, - "url": "{{ absolute_url(path('page::blog-resource', {categorySlug: post.category.slug, slug: post.slug})) }}", + "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: post.category.slug, slug: post.slug}) }}", "name": "{{ post.title }}" } {% endfor %} diff --git a/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig index 239395f..8c0958f 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig index c20e7f4..1a581a3 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig index c806bf7..9a1cbd0 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig index 557552e..6b6de73 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig index 221bf4e..27dad78 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig index 692a5c2..8867b9b 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig index e6a6fcb..ef0535d 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig index 4b4ba7e..b56b787 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig index 218f7bc..d974a04 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig index 93f7807..13b6ab8 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig index 4014524..13dd1f1 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig index ab194de..bff560c 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig index e99dda8..0a78efb 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/blog.jsonld.twig b/src/Blog/templates/page/JSON-LD/blog.jsonld.twig index 37d0d5c..376f911 100644 --- a/src/Blog/templates/page/JSON-LD/blog.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/blog.jsonld.twig @@ -2,11 +2,11 @@ { "@context": "https://schema.org", "@type": "CollectionPage", - "@id": "{{ absolute_url(path('page::blog')) }}#webpage", - "url": "{{ absolute_url(path('page::blog')) }}", + "@id": "{{ app.baseUrl ~ path('page::blog') }}#webpage", + "url": "{{ app.baseUrl ~ path('page::blog') }}", "name": "Blog", "description": "Latest articles from the Dotkernel blog.", - "isPartOf": { "@id": "{{ absolute_url('/') }}#website" }, + "isPartOf": { "@id": "{{ app.baseUrl }}#website" }, "mainEntity": { "@type": "ItemList", "itemListElement": [ @@ -14,7 +14,7 @@ { "@type": "ListItem", "position": {{ loop.index }}, - "url": "{{ absolute_url(path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug})) }}", + "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "name": "{{ article.title }}" } {% endfor %} diff --git a/src/Blog/templates/page/JSON-LD/categories.jsonld.twig b/src/Blog/templates/page/JSON-LD/categories.jsonld.twig index 7e31ae2..f98aad1 100644 --- a/src/Blog/templates/page/JSON-LD/categories.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/categories.jsonld.twig @@ -2,11 +2,11 @@ { "@context": "https://schema.org", "@type": "CollectionPage", - "@id": "{{ absolute_url(path('page::categories')) }}#webpage", - "url": "{{ absolute_url(path('page::categories')) }}", + "@id": "{{ app.baseUrl ~ path('page::categories') }}#webpage", + "url": "{{ app.baseUrl ~ path('page::categories') }}", "name": "Categories", "description": "Browse Dotkernel blog posts by category.", - "isPartOf": { "@id": "{{ absolute_url('/') }}#website" }, + "isPartOf": { "@id": "{{ app.baseUrl }}#website" }, "mainEntity": { "@type": "ItemList", "itemListElement": [ @@ -14,7 +14,7 @@ { "@type": "ListItem", "position": {{ loop.index }}, - "url": "{{ absolute_url(path('page::category-resource', {slug: category.slug})) }}", + "url": "{{ app.baseUrl ~ path('page::category-resource', {slug: category.slug}) }}", "name": "{{ category.name }}" } {% endfor %} diff --git a/src/Blog/templates/page/JSON-LD/category-resource.jsonld.twig b/src/Blog/templates/page/JSON-LD/category-resource.jsonld.twig index 25566e0..276614b 100644 --- a/src/Blog/templates/page/JSON-LD/category-resource.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/category-resource.jsonld.twig @@ -2,10 +2,10 @@ { "@context": "https://schema.org", "@type": "CollectionPage", - "@id": "{{ absolute_url(path('page::category-resource', {slug: category.slug})) }}#webpage", - "url": "{{ absolute_url(path('page::category-resource', {slug: category.slug})) }}", + "@id": "{{ app.baseUrl ~ path('page::category-resource', {slug: category.slug}) }}#webpage", + "url": "{{ app.baseUrl ~ path('page::category-resource', {slug: category.slug}) }}", "name": "{{ category.name }}", - "isPartOf": { "@id": "{{ absolute_url('/') }}#website" }, + "isPartOf": { "@id": "{{ app.baseUrl }}#website" }, "mainEntity": { "@type": "ItemList", "itemListElement": [ @@ -13,7 +13,7 @@ { "@type": "ListItem", "position": {{ loop.index }}, - "url": "{{ absolute_url(path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug})) }}", + "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "name": "{{ article.title }}" } {% endfor %} diff --git a/src/Blog/templates/page/JSON-LD/contact.jsonld.twig b/src/Blog/templates/page/JSON-LD/contact.jsonld.twig index b48068d..bf498b1 100644 --- a/src/Blog/templates/page/JSON-LD/contact.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/contact.jsonld.twig @@ -2,9 +2,9 @@ { "@context": "https://schema.org", "@type": "ContactPage", - "@id": "{{ absolute_url(path('page::contact')) }}#webpage", - "url": "{{ absolute_url(path('page::contact')) }}", + "@id": "{{ app.baseUrl ~ path('page::contact') }}#webpage", + "url": "{{ app.baseUrl ~ path('page::contact') }}", "name": "Contact", - "isPartOf": { "@id": "{{ absolute_url('/') }}#website" } + "isPartOf": { "@id": "{{ app.baseUrl }}#website" } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig index f31388b..41ff75f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig index ae430b4..a2e2dea 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig index dd50d54..83cb365 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig index f770cf9..b2d7666 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig index 6ea7c8a..1186131 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig index 4bf6b87..67a4224 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-versus-laminas-api-tools.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-versus-laminas-api-tools.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-versus-laminas-api-tools.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-versus-laminas-api-tools.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/error-reporting-endpoint-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/error-reporting-endpoint-in-dotkernel-api.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/error-reporting-endpoint-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/error-reporting-endpoint-in-dotkernel-api.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig index 61c5a44..395f85d 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig index 62dfc7a..7c09f2c 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-packages-oss-lifecycle.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-packages-oss-lifecycle.jsonld.twig index b9c8efb..7edbcae 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-packages-oss-lifecycle.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-packages-oss-lifecycle.jsonld.twig @@ -2,9 +2,9 @@ { "@context": "https://schema.org", "@type": "WebPage", - "@id": "{{ absolute_url(path('page::dotkernel-packages-oss-lifecycle')) }}#webpage", - "url": "{{ absolute_url(path('page::dotkernel-packages-oss-lifecycle')) }}", + "@id": "{{ app.baseUrl ~ path('page::dotkernel-packages-oss-lifecycle') }}#webpage", + "url": "{{ app.baseUrl ~ path('page::dotkernel-packages-oss-lifecycle') }}", "name": "Dotkernel Packages OSS Lifecycle", - "isPartOf": { "@id": "{{ absolute_url('/') }}#website" } + "isPartOf": { "@id": "{{ app.baseUrl }}#website" } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig index 9ff51ad..28e443e 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig index ce43d58..0247cd6 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig index c8e0e64..19d58dc 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig index e38708a..1493ebb 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig index 0a64989..f6934d0 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig index ba194e9..b455a95 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig index 239641c..9175091 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig index 95822d8..db63414 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig index d0ebb44..8f26691 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig index ac975e6..3c4b1e6 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig index 9056239..dd937f7 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig index 42c7846..8613774 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig index 2923f10..506dc42 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig index f8a9ea1..3f800db 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig index c782463..b05e895 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig index 7341f27..e09476f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig index 15b478f..f25a54e 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig index 76f73b8..fb19aac 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig index 71e7989..d092c35 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig index 31af4b1..07ba863 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig index 820145b..983296e 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig index 295b16b..7aba09a 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig index 495dade..03f7367 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig index b17ad14..ef6dc6d 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig index 9240d54..acfa950 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig index 99f41c5..882a5e7 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig index 2febf2d..38f4359 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig index 0c1054f..0511b93 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig index 62c84f7..a5a1e11 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig index 6efd509..e192d00 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig index 6fa3926..08d4008 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig index 9c3c3c1..7dabe87 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig index 8fafb30..f66d136 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig index 54ed065..c388e86 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig index d7b57e2..4bc8b61 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig index d8c72eb..abfa6b8 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig index ddf4b1e..01186e6 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig index df0fa4c..b239291 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig index d343f33..f70e82c 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig index 15e65cd..5c7d185 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig index eb6f527..d84feda 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig index 3cf53a1..a135cc4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig index 37f77d8..e8315cc 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig index 7998906..4b9a590 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig index 49146cb..2c00c84 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig index 11c736b..0b64566 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig index 387358e..dc4a8bc 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig index ffe05ae..e2c0ce4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig index 23b56b4..2d1ad32 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig index fa32e0c..29b609f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig index ac4c051..41128b9 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig index f2c990c..79f72ce 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig index c93bc47..4410e29 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig index 90e7999..3b0ddca 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig index f25b2ff..b66edff 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig index 055035c..2e67101 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig index 59522f5..5c50f2d 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig index e9226e4..96ea364 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig index 0fcac18..599672a 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig index 9d029cb..4d796a4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig index 6c1d8ee..a92e526 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig index f16e1b6..b63662f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig index 6e011a6..e067adf 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig index 86e080f..6c5f1b2 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig index a0e8465..1d22b25 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig index 7078309..851ef77 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig index f6e7c18..a9e0bb7 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig index 18286d6..db367f2 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-api-architecture-and-components.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-api-architecture-and-components.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-api-architecture-and-components.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-api-architecture-and-components.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-frontend-version-3-launched.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-frontend-version-3-launched.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-frontend-version-3-launched.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-frontend-version-3-launched.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel3-stable-release-version-1-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel3-stable-release-version-1-0.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel3-stable-release-version-1-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel3-stable-release-version-1-0.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-admin.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-admin.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-admin.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-admin.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig index fe35442..3afffd8 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig index 6f6a610..e990b81 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig index e44ab2d..a621de0 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig index afb8010..71fce5b 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig index c6aa6b7..f6cae1f 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig index 4535d39..e221de4 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig index 9f77ae8..7631a3c 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig index f752eb8..c472e17 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig index 45e680b..465860b 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig index 432464c..a73c14a 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig index 8d7606a..5f41be4 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig index e1c98d7..1159ca1 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig index a33f4e9..a452562 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig index 0a472eb..0a6c840 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig index 2e29cfe..22e28a4 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig index ae477f3..d1e2523 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig index a731914..769a1c7 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig index 2278fce..e70bb69 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/how-to/using-postman-for-documentation-in-dotkernel-api-3.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/using-postman-for-documentation-in-dotkernel-api-3.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/using-postman-for-documentation-in-dotkernel-api-3.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/using-postman-for-documentation-in-dotkernel-api-3.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/how-to/using-the-urlgenerator-work-in-fastroute.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/using-the-urlgenerator-work-in-fastroute.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/using-the-urlgenerator-work-in-fastroute.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/using-the-urlgenerator-work-in-fastroute.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/how-to/what-is-cross-origin-token-redemption.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/what-is-cross-origin-token-redemption.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/what-is-cross-origin-token-redemption.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/what-is-cross-origin-token-redemption.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/how-to/what-is-psr-7-and-how-to-use-it.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/what-is-psr-7-and-how-to-use-it.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/what-is-psr-7-and-how-to-use-it.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/what-is-psr-7-and-how-to-use-it.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/javascript/codelobster-php-edition-free-php-html-css-javascript-editor-ide.jsonld.twig b/src/Blog/templates/page/JSON-LD/javascript/codelobster-php-edition-free-php-html-css-javascript-editor-ide.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/javascript/codelobster-php-edition-free-php-html-css-javascript-editor-ide.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/javascript/codelobster-php-edition-free-php-html-css-javascript-editor-ide.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/javascript/intro-to-jquery.jsonld.twig b/src/Blog/templates/page/JSON-LD/javascript/intro-to-jquery.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/javascript/intro-to-jquery.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/javascript/intro-to-jquery.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig b/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig index 8f67547..7b33b00 100644 --- a/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig b/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig index 08dfb61..fa477c9 100644 --- a/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig b/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig index 6765f41..025f300 100644 --- a/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig index b388792..9c9459d 100644 --- a/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig b/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig index 97865dd..4b84aab 100644 --- a/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig index 1dad86d..bc35cd1 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/aptana-php-installation-in-aptana-2-x.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/aptana-php-installation-in-aptana-2-x.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/aptana-php-installation-in-aptana-2-x.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/aptana-php-installation-in-aptana-2-x.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig index 95c0355..e864b7f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig index cc816a9..924ca44 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig index 5a489c1..79e9d11 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig index 61089a3..960c253 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig index 2d24b8f..73c5103 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig index a57a13a..ab78297 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig index 93512fe..9c6eb5a 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig index db5acd6..8673a01 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig index 02892dd..de7e437 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig index a43ea5a..bf128fb 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig index 1547e75..11a9e6a 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig index 5bb109c..5009199 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig index 17964ea..91f173a 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig index 9b92974..89c1658 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig index ab3f7fa..fc71b79 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig index 8f45c7d..da986ce 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig index b854901..55e49aa 100644 --- a/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig index 750679f..23daaa2 100644 --- a/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig @@ -4,7 +4,7 @@ "@graph": [ { "@type": "TechArticle", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "headline": {{ article.title|json_encode|raw }}, "description": {{ article.excerpt|json_encode|raw }}, "url": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", @@ -30,7 +30,7 @@ }, { "@type": "BreadcrumbList", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ app.baseUrl }}" }, { "@type": "ListItem", "position": 2, "name": {{ article.category.name|json_encode|raw }}, "item": "{{ app.baseUrl ~ path('page::category-resource', {slug: article.category.slug}) }}" }, diff --git a/src/Blog/templates/page/JSON-LD/phpstorm/code-quality-how-to-setup-phpcs-in-phpstorm.jsonld.twig b/src/Blog/templates/page/JSON-LD/phpstorm/code-quality-how-to-setup-phpcs-in-phpstorm.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/phpstorm/code-quality-how-to-setup-phpcs-in-phpstorm.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/phpstorm/code-quality-how-to-setup-phpcs-in-phpstorm.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/sunsetting-pear-channel-for-zend-framework-1.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/sunsetting-pear-channel-for-zend-framework-1.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/sunsetting-pear-channel-for-zend-framework-1.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/sunsetting-pear-channel-for-zend-framework-1.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/wurfl-php-api-libraries-gpl-versions.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/wurfl-php-api-libraries-gpl-versions.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/wurfl-php-api-libraries-gpl-versions.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/wurfl-php-api-libraries-gpl-versions.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-12-4-released-with-security-fixes.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-12-4-released-with-security-fixes.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-12-4-released-with-security-fixes.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-12-4-released-with-security-fixes.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-7-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-7-0-released.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-7-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-7-0-released.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-end-of-life.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-end-of-life.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-end-of-life.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-1-end-of-life.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-as-pear-accessible-repository-on-plesk-server.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-as-pear-accessible-repository-on-plesk-server.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-as-pear-accessible-repository-on-plesk-server.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/zend-framework-as-pear-accessible-repository-on-plesk-server.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/JSON-LD/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.jsonld.twig b/src/Blog/templates/page/JSON-LD/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.jsonld.twig index 9eb8fb1..e38c13f 100644 --- a/src/Blog/templates/page/JSON-LD/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.jsonld.twig @@ -2,7 +2,7 @@ { "@context": "https://schema.org", "@type": "BlogPosting", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article/", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#article", "mainEntityOfPage": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", "headline": "{{ article.title }}", "description": "{{ article.excerpt }}", diff --git a/src/Blog/templates/page/blog-resource/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.html.twig b/src/Blog/templates/page/blog-resource/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.html.twig index 8079d79..9a8e90c 100644 --- a/src/Blog/templates/page/blog-resource/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.html.twig +++ b/src/Blog/templates/page/blog-resource/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/blog-post.html.twig' %} {% block body %} -

What TOTP Does

+

What TOTP Does

A Time-based One-Time Password (TOTP) is a security algorithm used as part of two-factor authentication (2FA) to protect against account attacks. The mechanism is integrated into dot-totp to enhance security by requiring both a password and an additional one-time code. Our implementation follows the industry standard of using an Authenticator app to generate temporary, unique 6 digit codes that change every 30 seconds.

@@ -123,7 +123,7 @@

Frequently Asked Questions

-
+
What is a Time-based One-Time Password (TOTP)? +
From 3074a5e2cc62438a8e4150898821da36b91f89f9 Mon Sep 17 00:00:00 2001 From: OStefan2001 Date: Fri, 7 Aug 2026 13:36:14 +0300 Subject: [PATCH 2/3] Add #faq in jsonld --- .../autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig | 2 +- .../doctrine-enum-implementation-in-dotkernel.jsonld.twig | 2 +- .../dotkernel-reserved-variable-names-for-caching.jsonld.twig | 2 +- .../dotkernel/dotkernel-version-1-0-in-action.jsonld.twig | 2 +- ...cing-utf8-connections-and-character-set-in-mysql.jsonld.twig | 2 +- ...logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig | 2 +- .../highcharts-integration-in-dotkernel-1-6-0.jsonld.twig | 2 +- .../how-to-group-log-files-by-date-using-dot-log.jsonld.twig | 2 +- ...w-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig | 2 +- ...ng-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig | 2 +- .../manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig | 2 +- ...sed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig | 2 +- .../wurfl-zend-framework-integration-into-dotkernel.jsonld.twig | 2 +- ...eo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig | 2 +- .../end-of-support-for-php-5-2-x-branch.jsonld.twig | 2 +- ...loating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig | 2 +- .../how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig | 2 +- .../php-development/mezzio-app-development-in-wsl2.jsonld.twig | 2 +- ...ql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig | 2 +- ...nnections-to-mysql-server-on-plesk-based-servers.jsonld.twig | 2 +- .../static-analysis-replacing-psalm-with-phpstan.jsonld.twig | 2 +- ...ng-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig | 2 +- .../using-php-7-express-in-zend-studio-13.jsonld.twig | 2 +- .../version-control-ignore-patterns-in-zend-studio.jsonld.twig | 2 +- 24 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig index f6934d0..484a03f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/autologin-using-cookie-remember-me-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Since which release is Remember Me implemented in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "It's implemented in Dotkernel Frontend starting from Release 3.3.0." } }, { "@type": "Question", "name": "How do you add the Remember Me checkbox to the login UI?", "acceptedAnswer": { "@type": "Answer", "text": "In src/User/templates/user/login.html.twig, under the password element, render the rememberMe element retrieved via form.get('rememberMe') with formElement()." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig index e09476f..0227ae4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-enum-implementation-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What update triggered this change to Dotkernel's enum handling?", "acceptedAnswer": { "@type": "Answer", "text": "The update of doctrine/orm to version 3.2.0 introduced EnumType columns, building on the enum type introduced in PHP 8.1. Dotkernel implemented this new data type on both the PHP side and the database side." } }, { "@type": "Question", "name": "What was the limitation of Dotkernel's old approach to columns like User->Status?", "acceptedAnswer": { "@type": "Answer", "text": "The old setup used a simple string type, so the value set couldn't be definitively enforced. A typo in a PHP value would still be accepted, and the database was independent of any values the PHP code allowed, so manually editing a value in the database would accept any string." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig index e192d00..458ef9b 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What cache key is used for the router?", "acceptedAnswer": { "@type": "Answer", "text": "The router, which loads routes settings from router.xml, is cached as router." } }, { "@type": "Question", "name": "What cache key stores the ACL role definitions?", "acceptedAnswer": { "@type": "Answer", "text": "The role.xml file (used by Dot_Auth, from /configs/acl/role.xml, to define user rights) is cached as acl_role." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig index 7dabe87..1b00d43 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Who developed Dotkernel and what is it built on?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel is DotBoost's in-house developed framework, built on top of Zend Framework. At the time of this article it was at version 1.0, released under the Open Software License (OSL 3.0)." } }, { "@type": "Question", "name": "What architecture does Dotkernel use?", "acceptedAnswer": { "@type": "Answer", "text": "A simplified MVC (Model-View-Controller) architecture that's easy to learn for beginner and intermediate level programmers, achieved by eliminating much of Zend Framework's complexity through a different approach to handling web requests." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig index f66d136..4f578c5 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/forcing-utf8-connections-and-character-set-in-mysql.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why force UTF8 at the MySQL server level instead of relying on each client?", "acceptedAnswer": { "@type": "Answer", "text": "Because you can't control all the scripts that connect to your database (for instance the mysql command line or mysqldump), so forcing the server's collation and character set to UTF8 in my.cnf guarantees it regardless of the connecting client." } }, { "@type": "Question", "name": "What two lines enable UTF8 for all connections in my.cnf?", "acceptedAnswer": { "@type": "Answer", "text": "character_set_server=utf8 and skip-character-set-client-handshake." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig index abfa6b8..d69d75c 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/handling-and-logging-errors-with-dot-errorhandler-and-dot-log.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What two kinds of error handlers does dot-errorhandler provide?", "acceptedAnswer": { "@type": "Answer", "text": "A plain ErrorHandler, which is a copy of Zend Expressive's Zend\\Stratigility\\Middleware\\ErrorHandler (copied because that class is final), and a logging LogErrorHandler, which is the same but with added logging support via the container. Both have factories registered for easier use with the Container." } }, { "@type": "Question", "name": "How do you install dot-errorhandler?", "acceptedAnswer": { "@type": "Answer", "text": "Run composer require dotkernel/dot-errorhandler." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig index 01186e6..589d131 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/highcharts-integration-in-dotkernel-1-6-0.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What charting library was integrated in Dotkernel 1.6.0?", "acceptedAnswer": { "@type": "Answer", "text": "Highcharts was integrated in Dotkernel 1.6.0, offering a new, intuitive and interactive charting experience." } }, { "@type": "Question", "name": "What sample charts were added to the admin?", "acceptedAnswer": { "@type": "Answer", "text": "The admin includes samples made with Highcharts: a pie chart (with a small custom feature), a column chart, and a line chart." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig index b239291..6025ea9 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-group-log-files-by-date-using-dot-log.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does dot-log Version 3.1.1 add?", "acceptedAnswer": { "@type": "Answer", "text": "Version 3.1.1 adds the ability to use datetime formatter strings directly in the stream option of your log writer, and it fixes an issue where caching dot-log configs caused logs to be written to the same file instead of being grouped by date." } }, { "@type": "Question", "name": "How do I make sure I'm using the fix in Version 3.1.1?", "acceptedAnswer": { "@type": "Answer", "text": "Make sure you're using the latest version of dot-log by running composer update dotkernel/dot-log." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig index d84feda..43f97f9 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/implementing-the-new-password-hashing-api-from-php-5-5-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why was Dotkernel refactored to use the new PHP 5.5 Password Hashing API?", "acceptedAnswer": { "@type": "Answer", "text": "To use the new Password Hashing functions introduced in PHP 5.5 and unify all password related functions used for both admin and users, Dotkernel's codebase was refactored in version 1.8.0, starting from revision 799." } }, { "@type": "Question", "name": "How can PHP versions older than 5.5 use these new hashing functions?", "acceptedAnswer": { "@type": "Answer", "text": "Since the 4 new functions are only available since PHP 5.5, Dotkernel used the Password Compatibility library (ircmaxell/password_compat)." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig index 4b9a590..f0bd8da 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/logging-with-dot-log-in-zend-expressive-and-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do I register dot-log's config provider?", "acceptedAnswer": { "@type": "Answer", "text": "In config/config.php, add \\Dot\\Log\\ConfigProvider::class if it's not already there, making sure it is added before application-specific components such as Frontend\\App\\ConfigProvider or Admin\\App\\ConfigProvider." } }, { "@type": "Question", "name": "How is a logger retrieved from the container instead of using the plain class name?", "acceptedAnswer": { "@type": "Answer", "text": "Dot\\Log\\ConfigProvider registers an abstract factory, LoggerAbstractServiceFactory, that responds to \"selectors\" instead of class names. Instead of requesting Zend\\Log\\Logger::class from the container, you request dot-log.my_logger (or just my_logger if using zend-log)." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig index 2c00c84..97dce06 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/manual-upgrade-of-wurfl-xml-file-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why does the WURFL xml file need to be manually upgraded in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel bundles an old WURFL XML file (the latest GPL version, from June 2011). Because of a license change to that WURFL file, the bundled file will no longer be upgraded by Dotkernel, so it must be upgraded manually if you still want to use it." } }, { "@type": "Question", "name": "What are the main steps to manually upgrade the WURFL file?", "acceptedAnswer": { "@type": "Answer", "text": "Download the wurfl-2.3.xml.zip file, rename it to wurfl.zip, rename the file inside the archive to wurfl.xml, and replace /externals/wurfl/wurfl.zip with this new wurfl.zip file." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig index 41128b9..54e7631 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/scientia-mobile-licensed-its-wurfl-cloud-php-library-to-dotkernel-1-6.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why was the WURFL PHP library removed from Dotkernel 1.6.0?", "acceptedAnswer": { "@type": "Answer", "text": "In Dotkernel 1.6.0, released on May 16th, 2012, the GPL'ed WURFL PHP library was removed because the code was obsolete anyway and the structure of the XML file had changed." } }, { "@type": "Question", "name": "What replaced the old WURFL PHP library?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel implemented Scientia Mobile's WURFL Cloud PHP library instead." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig index 599672a..a9e34ee 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-zend-framework-integration-into-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Which Zend Framework class is used to integrate WURFL into Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "WURFL is integrated using the Zend_Http_UserAgent class from Zend Framework 1.11.0rc1 (the beta release at the time of the post)." } }, { "@type": "Question", "name": "What is the first step to integrate WURFL into Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Download the WURFL PHP API and unzip it into a folder named wurfl-php-1.1." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig index 769a1c7..53a43c5 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/implementation-of-seo-friendly-url-in-an-generic-laminas-mezzio-app.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What are the benefits of human-readable slugs cited in this article?", "acceptedAnswer": { "@type": "Answer", "text": "Readability and a more user-friendly experience, better search engine optimization (SEO), and improved shareability and trustworthiness of the URL." } }, { "@type": "Question", "name": "What package is used to generate slugs in this example?", "acceptedAnswer": { "@type": "Answer", "text": "gedmo/doctrine-extensions, installed by running composer require gedmo/doctrine-extensions." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig index e864b7f..8a6b46f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/end-of-support-for-php-5-2-x-branch.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does the release of PHP 5.2.14 mean for the 5.2.x branch?", "acceptedAnswer": { "@type": "Answer", "text": "PHP 5.2.14 marks the end of active support for the PHP 5.2 branch. After this release, PHP 5.2 will receive no further active bug maintenance, though security fixes might still be published on a case-by-case basis." } }, { "@type": "Question", "name": "What should users of PHP 5.2 do?", "acceptedAnswer": { "@type": "Answer", "text": "All users of PHP 5.2 are encouraged to upgrade to PHP 5.3." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig index 924ca44..7dcce1f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/floating-point-arithmetic-why-is-int-0-7-0-1-10-7.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why does (int)((0.7+0.1)*10) return 7 instead of 8?", "acceptedAnswer": { "@type": "Answer", "text": "Because 0.7 is actually represented internally as 0.699999988079071 and 0.1 as 0.10000000149011612. Adding them gives 0.7999999895691871, and multiplying by 10 gives 7.999999895691871, which truncates to 7 when cast to int." } }, { "@type": "Question", "name": "Does the same rounding issue happen with 0.6 instead of 0.7?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. 0.6 is represented as 0.6000000238418579, and (0.6000000238418579 + 0.10000000149011612) * 10 equals about 7.00000025331974, which also truncates to int(7)." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig index 79e9d11..a476ee4 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/how-to-upgrade-wamp-to-php-5-3-4.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Where do I download the PHP 5.3.4 package for WAMP?", "acceptedAnswer": { "@type": "Answer", "text": "Download the latest ZIPPED package for PHP 5.3.4 from windows.php.net. Make sure it is the VC6 Thread Safe build, and do not download the installer." } }, { "@type": "Question", "name": "Where should the downloaded PHP 5.3.4 files be extracted?", "acceptedAnswer": { "@type": "Answer", "text": "Create a folder named php5.3.4 inside wamp/bin/php, then extract the downloaded zip into that newly created folder." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig index 960c253..7a946c4 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/mezzio-app-development-in-wsl2.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does this guide help you accomplish?", "acceptedAnswer": { "@type": "Answer", "text": "It walks you through installing a Mezzio application (Dotkernel API) using WSL2 and running it on Ubuntu 20.04 LTS." } }, { "@type": "Question", "name": "What do you need before installing Ubuntu inside WSL2?", "acceptedAnswer": { "@type": "Answer", "text": "You first need WSL2 installed on your machine, which you can set up by following the linked WSL2 installation guide, before installing Ubuntu inside it." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig index 8673a01..c6ba83e 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework-part-2.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the focus of this article?", "acceptedAnswer": { "@type": "Answer", "text": "Following the earlier article about SQL Injection, this article makes a stronger argument for using Zend Framework to handle database access. Zend_Db is the primary class used for accessing the database, but there is more to it: Zend_Db_Statement, Zend_Db_Select, and Zend_Db_Tables." } }, { "@type": "Question", "name": "Does Zend_Db's query() method protect against SQL injection?", "acceptedAnswer": { "@type": "Answer", "text": "query() uses prepared statements internally, but SQL Injection is still possible if the $sql parameter passed to it is dynamically created." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig index bf128fb..acd6c64 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/remote-connections-to-mysql-server-on-plesk-based-servers.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why can't I connect remotely to MySQL on a Plesk-based server?", "acceptedAnswer": { "@type": "Answer", "text": "By default, MySQL servers on Linux machines with Plesk installed have the old_passwords flag set to 1 (ON). Even on MySQL 5.5+, this means the old, pre-4.1 password storage style is still used, which causes a PDOException error when connecting remotely." } }, { "@type": "Question", "name": "What error message indicates this old-passwords problem?", "acceptedAnswer": { "@type": "Answer", "text": "You get a fatal error mentioning \"cannot connect to MySQL 4.1+ using the old insecure authentication,\" suggesting you reset the password using SET PASSWORD = PASSWORD('your_existing_password') to store a newer, more secure hash." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig index 11a9e6a..40c522b 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/static-analysis-replacing-psalm-with-phpstan.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is static analysis and why is it used?", "acceptedAnswer": { "@type": "Answer", "text": "Static analysis (or source code analysis) applies coding rules to debug source code before a program is run. It's used to catch and fix type-related errors, confirm coding standards, identify code that needs refactoring, and enhance security by detecting issues like code injection, XSS, and open redirect vulnerabilities." } }, { "@type": "Question", "name": "Why did Dotkernel switch from Psalm to PHPStan?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel had used Psalm with positive results, but much of the PHP community, including projects like Doctrine and Composer, moved to PHPStan instead. Since the two tools have largely identical findings, using both wasn't justified, and PHPStan has a faster growing ecosystem, better social media presence, a fulltime contributor (@ondrejmirtes), PHP stubs from PHPStorm, and better quality and depth of detection." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig index 5009199..9f261ee 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dotkernel Tracker?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel Tracker is a Mantis-based, web-based bugtracking system used by the Dotkernel application framework, where bugs are reported, new features are announced, and other general tickets are added." } }, { "@type": "Question", "name": "How is Aptana integrated with Dotkernel Tracker?", "acceptedAnswer": { "@type": "Answer", "text": "Aptana, the web development IDE used for Dotkernel development, is integrated with Dotkernel Tracker via the Mylyn plugin's Mantis connector, so tickets can be managed directly from within the IDE." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig index 91f173a..cdc55b5 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/using-php-7-express-in-zend-studio-13.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is PHP 7 Express in Zend Studio?", "acceptedAnswer": { "@type": "Answer", "text": "PHP 7 Express is a feature added in Zend Studio starting with version 13. It's useful for checking whether pre-PHP7 code will work correctly on a PHP7 server." } }, { "@type": "Question", "name": "What PHP version should you select when creating a test project?", "acceptedAnswer": { "@type": "Answer", "text": "Use the exact PHP version your project actually uses (e.g. PHP 5.6), not PHP 7. Choosing PHP 7 at project creation hides the PHP 7 Express feature, because Zend Studio assumes a PHP 7 project doesn't need compatibility checks." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig index 89c1658..3219fb7 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/version-control-ignore-patterns-in-zend-studio.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do you set global ignored resource patterns in Zend Studio?", "acceptedAnswer": { "@type": "Answer", "text": "Go to Window -> Preferences, then Team -> Ignored Resources. From there, use Add Pattern to add ignored patterns one by one, applying them globally to all projects instead of adding them manually to each project, or remove existing patterns." } }, { "@type": "Question", "name": "When is this global ignore configuration especially useful?", "acceptedAnswer": { "@type": "Answer", "text": "It's especially useful when you have both Git and SVN projects in the same workspace, and also when you tend to be less careful about your code and workspace. On each project you can still choose to use either the global ignored patterns or specific ones." } } From 62f093f84e9adf5df1d04f08332ece7f4128e944 Mon Sep 17 00:00:00 2001 From: OStefan2001 Date: Fri, 7 Aug 2026 13:41:54 +0300 Subject: [PATCH 3/3] Add #faq in jsonld --- .../android/listen-for-android-install-referrer.jsonld.twig | 2 +- ...st-receivers-in-the-same-app-for-the-same-action.jsonld.twig | 2 +- ...configprovider-bootstrap-modern-php-applications.jsonld.twig | 2 +- ...request-lifecycle-for-a-mezzio-based-application.jsonld.twig | 2 +- .../JSON-LD/architecture/understanding-middleware.jsonld.twig | 2 +- .../JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig | 2 +- .../basic-security-in-dotkernel-headless-platform.jsonld.twig | 2 +- .../golden-rules-of-professional-php-coding.jsonld.twig | 2 +- .../htaccess-301-redirect-non-www-to-www.jsonld.twig | 2 +- .../insert-update-delete-statements-with-zend-db.jsonld.twig | 2 +- .../best-practice/sql-queries-using-zend-db-select.jsonld.twig | 2 +- .../JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig | 2 +- .../best-practice/svn-export-in-a-virtual-host.jsonld.twig | 2 +- .../svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig | 2 +- .../best-practice/using-like-wildcards-with-zend-db.jsonld.twig | 2 +- ...t-are-returning-the-fetch-functions-from-zend-db.jsonld.twig | 2 +- ...rrent-timestamp-on-a-field-that-record-date-time.jsonld.twig | 2 +- ...tired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig | 2 +- .../api-client-migration-from-postman-to-bruno.jsonld.twig | 2 +- .../api-endpoint-to-collect-client-errors.jsonld.twig | 2 +- .../content-negotiation-in-dotkernel-rest-api.jsonld.twig | 2 +- .../dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig | 2 +- .../dotkernel-api-client-side-authorization.jsonld.twig | 2 +- .../dotkernel-api-server-side-authorization.jsonld.twig | 2 +- .../how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig | 2 +- .../openapi-implementation-in-dotkernel-api.jsonld.twig | 2 +- .../adding-a-cors-implementation-to-zend-expressive.jsonld.twig | 2 +- ...nd-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig | 2 +- ...dding-composer-support-in-your-dotkernel-project.jsonld.twig | 2 +- ...0-os-and-browser-detection-in-dotkernel-projects.jsonld.twig | 2 +- ...-routing-through-bootstrap-of-non-existent-files.jsonld.twig | 2 +- .../caching-in-dotkernel-using-zend-framework.jsonld.twig | 2 +- .../camelcase-table-names-in-mysql-on-windows.jsonld.twig | 2 +- ...php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig | 2 +- .../dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig | 2 +- ...jection-made-easy-in-laminas-mezzio-applications.jsonld.twig | 2 +- .../detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig | 2 +- .../disable-wurfl-redirect-for-mobile-browsers.jsonld.twig | 2 +- .../disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig | 2 +- .../dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig | 2 +- ...es-products-and-services-north-american-relaunch.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig | 2 +- .../JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig | 2 +- .../dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig | 2 +- .../JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig | 2 +- .../dotkernel-database-naming-conventions-for-mysql.jsonld.twig | 2 +- ...ith-mezzio-microframework-and-laminas-components.jsonld.twig | 2 +- ...light-the-best-choice-for-your-presentation-site.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig | 2 +- .../JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig | 2 +- .../dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig | 2 +- .../geoip-ip-address-location-in-dotkernel.jsonld.twig | 2 +- ...-to-database-with-zend-framework-zend-db-adapter.jsonld.twig | 2 +- .../dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig | 2 +- ...ng-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig | 2 +- ...ling-geoip-extension-in-zend-server-6-on-windows.jsonld.twig | 2 +- .../migration-of-zend-framework-1-pear-channel.jsonld.twig | 2 +- .../dotkernel/new-features-in-zend-framework-1-12.jsonld.twig | 2 +- ...php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig | 2 +- .../protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig | 2 +- ...ing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig | 2 +- ...-emails-using-dot-email-component-and-zend-email.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig | 2 +- .../templates/page/JSON-LD/dotkernel/test-article.jsonld.twig | 2 +- .../using-dotkernel-with-composer-dependencies.jsonld.twig | 2 +- .../dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig | 2 +- .../wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig | 2 +- ...urfl-php-api-license-incompatible-with-dotkernel.jsonld.twig | 2 +- .../zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig | 2 +- .../zend-console-implementation-in-dotkernel.jsonld.twig | 2 +- ...d-framework-dropped-integration-of-wurfl-adapter.jsonld.twig | 2 +- .../dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig | 2 +- ...usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig | 2 +- ...php-formatter-file-for-dotkernel-coding-standard.jsonld.twig | 2 +- .../dotkernel3/development-report-december-11-2017.jsonld.twig | 2 +- .../page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig | 2 +- .../dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig | 2 +- .../dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig | 2 +- .../php-8-3-support-in-dotkernel-frontend.jsonld.twig | 2 +- ...mplementary-admin-in-dotkernel-headless-platform.jsonld.twig | 2 +- ...l-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig | 2 +- ...kernel-headless-platform-the-whats-hows-and-whys.jsonld.twig | 2 +- ...hronous-execution-in-dotkernel-headless-platform.jsonld.twig | 2 +- .../dotmaker-generate-common-code-in-dotkernel.jsonld.twig | 2 +- .../evolution-pattern-versus-api-versioning.jsonld.twig | 2 +- ...g-time-based-one-time-password-totp-in-dotkernel.jsonld.twig | 2 +- ...ed-core-submodule-in-dotkernel-headless-platform.jsonld.twig | 2 +- ...ersion-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig | 2 +- ...cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig | 2 +- .../how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig | 2 +- .../how-to/database-migrations-and-how-to-use-them.jsonld.twig | 2 +- .../how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig | 2 +- ...octrine-migration-without-dropping-custom-tables.jsonld.twig | 2 +- ...linux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig | 2 +- .../JSON-LD/javascript/javascript-email-validator.jsonld.twig | 2 +- .../mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig | 2 +- ...-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig | 2 +- ...ing-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig | 2 +- ...ith-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig | 2 +- ...2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig | 2 +- ...-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig | 2 +- .../php-environment-development-staging-production.jsonld.twig | 2 +- .../php-development/php-support-back-in-aptana-3-0.jsonld.twig | 2 +- ...ainst-sql-injection-using-pdo-and-zend-framework.jsonld.twig | 2 +- ...he-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig | 2 +- .../zend-server-5-5-quick-setup-on-windows.jsonld.twig | 2 +- .../fix-installing-pear-packages-with-php-7-2.jsonld.twig | 2 +- .../where-is-the-intl-php-extension-problem-solved.jsonld.twig | 2 +- 112 files changed, 112 insertions(+), 112 deletions(-) diff --git a/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig b/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig index 96bd540..992b423 100644 --- a/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/android/listen-for-android-install-referrer.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig b/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig index 010ac70..690ea12 100644 --- a/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/android/multiple-broadcast-receivers-in-the-same-app-for-the-same-action.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig b/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig index a142dea..88776ce 100644 --- a/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/architecture/configprovider-bootstrap-modern-php-applications.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig b/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig index a2e8484..126c57f 100644 --- a/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/architecture/request-lifecycle-for-a-mezzio-based-application.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig b/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig index 8f21eb4..289affb 100644 --- a/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/architecture/understanding-middleware.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig index 8c0958f..543b11f 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/aptana-set-svn-keywords.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig index 1a581a3..8029fb0 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/basic-security-in-dotkernel-headless-platform.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig index 9a1cbd0..97e15dc 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/golden-rules-of-professional-php-coding.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig index 6b6de73..6344e1b 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/htaccess-301-redirect-non-www-to-www.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig index 27dad78..1b005ba 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/insert-update-delete-statements-with-zend-db.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What are DML statements?", "acceptedAnswer": { "@type": "Answer", "text": "DML (Data Manipulation Language) statements are statements that change data values in database tables. There are 3 primary DML statements: INSERT, UPDATE, and DELETE." } }, { "@type": "Question", "name": "How do you insert a new row with Zend_Db?", "acceptedAnswer": { "@type": "Answer", "text": "Build an associative array of column names to values (e.g. email, password, firstName, lastName, active) and pass it to $db->insert('user', $data), which corresponds to an SQL INSERT INTO ... VALUES statement." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig index 8867b9b..e20ca1a 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/sql-queries-using-zend-db-select.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does Zend_Db provide?", "acceptedAnswer": { "@type": "Answer", "text": "Zend_Db and its related classes provide a simple SQL database interface for Zend Framework. To connect to a MySQL database, the Pdo_Mysql adapter is used via Zend_Db::factory('Pdo_Mysql', $dbConnect)." } }, { "@type": "Question", "name": "How do you write a SELECT with a JOIN and a WHERE clause in Zend_Db style?", "acceptedAnswer": { "@type": "Answer", "text": "Use $db->select()->from(array('a'=>'users'), array('a.id','a.name'))->join(array('b'=>'orders'), 'a.id = b.user_id', array('b.order_id'))->where('a.id = ?', $userId), which is equivalent to a classical SQL query using INNER JOIN." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig index ef0535d..170127e 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/subqueries-with-zend-db.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What SQL techniques does this subquery example combine?", "acceptedAnswer": { "@type": "Answer", "text": "The example combines COUNT(), LEFT JOIN, and GROUP BY, selecting from 3 tables and counting rows from 2 different tables." } }, { "@type": "Question", "name": "How do you embed a subquery as a selected column in a Zend_Db select?", "acceptedAnswer": { "@type": "Answer", "text": "Wrap a nested $db->select() call inside a Zend_Db_Expr, building the subquery string with the outer table's correlated WHERE condition (e.g. c.track_id = a.id), as shown for the count_files column." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig index b56b787..9f0e57b 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/svn-export-in-a-virtual-host.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do you check if Subversion is installed on the host?", "acceptedAnswer": { "@type": "Answer", "text": "Run svn --version. If you don't get a \"command not found\" message, Subversion is installed; otherwise, you need to install it." } }, { "@type": "Question", "name": "What is the basic command to export a repository?", "acceptedAnswer": { "@type": "Answer", "text": "The command is svn export repositoryUrl targetDirectory, run from the host where you want to export the repository, ideally using the domain's user rather than root." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig index d974a04..af37072 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/svn-keywords-setup-in-php-ide-zend-studio.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why set these SVN properties on each project?", "acceptedAnswer": { "@type": "Answer", "text": "They provide better integration of SVN, your PHP IDE (Zend Studio), and a bug tracker of choice, and must be set for each project you have." } }, { "@type": "Question", "name": "What does the svn:ignore property do here?", "acceptedAnswer": { "@type": "Answer", "text": "It tells SVN to ignore local settings files such as *.project, *.prefs, .project, cache, .settings, .buildpath, and *.ini, since you don't want to commit your local settings to the main repository." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig index 13b6ab8..7418e62 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/using-like-wildcards-with-zend-db.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What do the LIKE wildcards _ and % mean?", "acceptedAnswer": { "@type": "Answer", "text": "The _ wildcard matches a single character, while % matches any string of any length, including zero length." } }, { "@type": "Question", "name": "Which SQL statements can use the LIKE condition?", "acceptedAnswer": { "@type": "Answer", "text": "LIKE allows pattern matching in the WHERE clause and can be used in any valid SQL statement: SELECT, INSERT, UPDATE, or DELETE." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig index 13dd1f1..97825e1 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/what-are-returning-the-fetch-functions-from-zend-db.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What FETCH methods are available in Zend_Db_Adapter_Abstract?", "acceptedAnswer": { "@type": "Answer", "text": "The article covers fetchAll, fetchAssoc, fetchCol, fetchOne, fetchPairs, and fetchRow." } }, { "@type": "Question", "name": "What does fetchAll do compared to the old query style?", "acceptedAnswer": { "@type": "Answer", "text": "$a = $db->fetchAll($select) replaces the old-style loop that calls next_record() repeatedly and builds an array of associative rows using f() for each column." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig index bff560c..2c1c837 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/why-use-current-timestamp-on-a-field-that-record-date-time.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why use CURRENT_TIMESTAMP as a DEFAULT value for a date/time field?", "acceptedAnswer": { "@type": "Answer", "text": "Because when inserting a new row, there is no need to specifically set the date/time value yourself, either from PHP Date/Time functions or with MySQL's NOW() function." } }, { "@type": "Question", "name": "How do you make a field update its timestamp automatically on every UPDATE?", "acceptedAnswer": { "@type": "Answer", "text": "Add the ON UPDATE CURRENT_TIMESTAMP clause, for example: ALTER TABLE `user` CHANGE `dateLogin` `dateLogin` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP." } }, diff --git a/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig b/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig index 0a78efb..abce2d4 100644 --- a/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Laminas MVC being replaced by?", "acceptedAnswer": { "@type": "Answer", "text": "Mezzio microframework, built using Laminas components. It has gone through rigorous development and testing since being released in 2015, when it was known as Zend Expressive, before being renamed Mezzio." } }, { "@type": "Question", "name": "Why is maintaining legacy platforms a problem?", "acceptedAnswer": { "@type": "Answer", "text": "Maintaining legacy platforms over the long term is often costly and time-consuming, so every few years platform owners must consider migrating to a newer platform that offers modern architecture, an active community, easier development/expansion/maintenance, security improvements, and more reliable dependencies." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig index 41ff75f..e880383 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-client-migration-from-postman-to-bruno.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig index a2e2dea..d428b7f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/api-endpoint-to-collect-client-errors.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig index 83cb365..a9eb147 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/content-negotiation-in-dotkernel-rest-api.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig index b2d7666..fcc00e3 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig index 1186131..061a620 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig index 67a4224..bf43492 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig index 395f85d..731bf12 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Which library does this tutorial use to add MailChimp to Dotkernel API?", "acceptedAnswer": { "@type": "Answer", "text": "The tutorial uses drewm/mailchimp-api, installed with the command composer require drewm/mailchimp-api." } }, { "@type": "Question", "name": "Where do you place the MailChimp configuration file?", "acceptedAnswer": { "@type": "Answer", "text": "In config/autoload/mailchimp.global.php, a new configuration file created as part of Step 2." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig index 7c09f2c..a1a6afd 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel-api/openapi-implementation-in-dotkernel-api.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the OpenAPI Specification?", "acceptedAnswer": { "@type": "Answer", "text": "A consistent way to develop and interact with an API. It defines API structure and syntax in a universal way, regardless of the programming language used, typically described in YAML or JSON so users can quickly discover endpoints, request/response formats, security mechanisms and more." } }, { "@type": "Question", "name": "How does OpenAPI compare to Postman?", "acceptedAnswer": { "@type": "Answer", "text": "OpenAPI standardizes how endpoints and request/response models are described, automatically generates machine-readable documentation, lets you define the API specification before development starts, and improves collaboration across teams. Postman, by contrast, is used mainly to test an already-completed endpoint and has no real focus on standardized documentation or upfront design." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig index 28e443e..888975a 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-cors-implementation-to-zend-expressive.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What causes the \"No 'Access-Control-Allow-Origin' header\" error?", "acceptedAnswer": { "@type": "Answer", "text": "It means the server didn't send the header that lets a local client, such as a browser, access its data. This is most common when trying to fetch data (usually JSON) that you want to process using JavaScript." } }, { "@type": "Question", "name": "What package does the article use to add CORS support?", "acceptedAnswer": { "@type": "Answer", "text": "Tuupola's Cors Middleware package, installed by running composer require tuupola/cors-middleware in the project." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig index 0247cd6..01c3698 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why was WURFL's default caching too slow for this project?", "acceptedAnswer": { "@type": "Answer", "text": "Profiling revealed that WURFL's default filesystem cache was taking up to a few hundred milliseconds of response time, which was too slow for a relatively high-traffic application." } }, { "@type": "Question", "name": "How does WURFL's caching work by default?", "acceptedAnswer": { "@type": "Answer", "text": "Device data is stored in a large zipped XML file. On first use, WURFL unzips the file, serializes each device's data, and writes it to cache using an MD5 signature of the user agent as the key. Because devices are stored as a tree inheriting properties from parent nodes, each lookup requires reading and merging several files." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig index 19d58dc..0d58343 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does Composer do?", "acceptedAnswer": { "@type": "Answer", "text": "Composer is an application-level package manager. It auto-loads dependencies on demand and can also auto-load custom classes." } }, { "@type": "Question", "name": "What must a Dotkernel project have before Composer can be used?", "acceptedAnswer": { "@type": "Answer", "text": "A composer.json file, for example requiring zendframework/zendframework1 at 1.12.* and mobiledetect/mobiledetectlib at 2.8.*, plus PHP >=5.4.0 listed under require-dev." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig index 1493ebb..5fdcce5 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What Dotkernel version is required before applying this patch?", "acceptedAnswer": { "@type": "Answer", "text": "Your project must be running version 1.5.0 or newer." } }, { "@type": "Question", "name": "Which files does the patch modify or add?", "acceptedAnswer": { "@type": "Answer", "text": "It modifies configs/useragent/browser.xml and configs/useragent/os.xml, and adds images/browsers/edge.png and images/os/windows_metro.png." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig index b455a95..eaf9fd9 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/avoid-routing-through-bootstrap-of-non-existent-files.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What problem does this fix address?", "acceptedAnswer": { "@type": "Answer", "text": "When missing static files (images, CSS, JS) are routed through the bootstrap (index.php) and the session is set to regenerate on each request, the currently logged-in user gets logged off because the session ID changes." } }, { "@type": "Question", "name": "What is the fix?", "acceptedAnswer": { "@type": "Answer", "text": "Below the \"RewriteEngine On\" line, add a RewriteCond matching file extensions like .gif, .jpg, .png, .css, and .js, so requests for those files are not routed through the bootstrap." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig index 9175091..5c21107 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What data does Dotkernel's cache layer store?", "acceptedAnswer": { "@type": "Answer", "text": "Router, acl_role, menu, options (including seo_xml), browser_xml, os_xml, and test data between requests." } }, { "@type": "Question", "name": "What storage providers are available for the cache?", "acceptedAnswer": { "@type": "Answer", "text": "Two cache factories to choose from: APC (or APCU for newer PHP installations) and File." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig index db63414..f0e8a4a 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/camelcase-table-names-in-mysql-on-windows.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What happens when you create a camelCase table name on WAMP or XAMPP?", "acceptedAnswer": { "@type": "Answer", "text": "A table created with a camelCase name, for example adminLogin, ends up stored as all lowercase, e.g. adminlogin, instead." } }, { "@type": "Question", "name": "How do you fix it?", "acceptedAnswer": { "@type": "Answer", "text": "Add the line lower_case_table_names=2 to your my.cnf file and restart MySQL." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig index 8f26691..fe220e0 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/commitment-to-php-new-zend-certified-engineers-zce-in-our-team.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How many Zend Certified Engineers does the team have?", "acceptedAnswer": { "@type": "Answer", "text": "According to the article, 2 more team members passed the ZCE exam, bringing the team's total to 5 Zend Certified Engineers." } } ] diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig index 3c4b1e6..54e37c7 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dotkernel's caching layer based on?", "acceptedAnswer": { "@type": "Answer", "text": "It's based on Zend Framework Cache, configured through settings in application.ini, with more configuration options available at the Zend Framework Cache Frontends and Backends documentation links given in the article." } }, { "@type": "Question", "name": "What does the cache.enable setting do?", "acceptedAnswer": { "@type": "Answer", "text": "It can be used to disable caching, which is mostly useful during the development stage." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig index dd937f7..289fe68 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What problem does dot-dependency-injection solve?", "acceptedAnswer": { "@type": "Answer", "text": "In Laminas/Mezzio applications, developers normally have to build, update, and maintain a factory class for every class that needs dependencies. dot-dependency-injection autowires those dependencies instead, so you don't need a factory for every class." } }, { "@type": "Question", "name": "Does dot-dependency-injection require Doctrine ORM?", "acceptedAnswer": { "@type": "Answer", "text": "The package requires Doctrine ORM, but the article notes it can still be used in applications that don't integrate Doctrine." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig index 8613774..9a45f9c 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did mobile detection change in Dotkernel 1.6.0?", "acceptedAnswer": { "@type": "Answer", "text": "Because of the new Wurfl Cloud integration. This version no longer ships with a working built-in method for mobile detection, so it must be configured first." } }, { "@type": "Question", "name": "What are the steps to configure Wurfl Cloud detection?", "acceptedAnswer": { "@type": "Answer", "text": "Go to the scientiamobile website and register for a Wurfl Cloud account, choose the device_os and mobile_browser capabilities for the account and save, then go to API Keys and copy the key into application.ini." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig index 506dc42..79ce99c 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/disable-wurfl-redirect-for-mobile-browsers.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do you disable the automatic mobile redirect in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Starting with revision 408, set resources.useragent.wurflapi.redirect = false in application.ini. Per the article, this is also the default state of the redirect option." } }, { "@type": "Question", "name": "Where in the code is this configuration option checked?", "acceptedAnswer": { "@type": "Answer", "text": "In Controllers/frontend/IndexController.php (around line 19), a condition checks whether the redirect is enabled in application.ini, whether the visiting browser is mobile, and whether session->mobileHit isn't already set, before registering and redirecting the visit." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig index 3f800db..9768d04 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does the name \"Dotkernel\" mean?", "acceptedAnswer": { "@type": "Answer", "text": "It combines \"Dot\", as a representation of the Internet, with \"Kernel\", the quintessence of any IT application, reflecting the aim of being a central part of Internet development." } }, { "@type": "Question", "name": "What is Dotkernel 1?", "acceptedAnswer": { "@type": "Answer", "text": "A PHP Application Framework built on top of Zend Framework 1, first publicly released in July 2010, with an architecture based on MVC. Its latest version is 1.8 Long Term Support, which per the article will not be followed by a new version, only bugfixes." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig index b05e895..1d0c280 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/doctrine-cache-using-symfony-cache.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What component does this article use for caching Doctrine data?", "acceptedAnswer": { "@type": "Answer", "text": "The dotkernel/dot-cache component, a wrapper that sits on top of symfony/cache. It's installed with composer require dotkernel/dot-cache and registered by adding DotCacheConfigProvider::class to the configuration aggregate." } }, { "@type": "Question", "name": "What storage adapters does dot-cache currently support?", "acceptedAnswer": { "@type": "Answer", "text": "Two: array, which stores data in-memory and is the fastest option but uses more RAM, and filesystem, which stores data in local disk files and is slightly slower but more persistent." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig index f25a54e..05f6f8b 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is at the heart of Dotboost's North American relaunch?", "acceptedAnswer": { "@type": "Answer", "text": "The source release of Dotboost's exclusive, in-house developed Dotkernel framework, along with added business IT integration and increased clarity around existing consulting services." } }, { "@type": "Question", "name": "When was Dotboost founded, and at what stages can it join a project?", "acceptedAnswer": { "@type": "Answer", "text": "Dotboost was founded in 2005. Per the article, its process can incorporate anywhere into a project's life-cycle, including concept development, architecture and design, development and integration, and implementation and support." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig index fb19aac..e8be884 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-0-release.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is a \"dots\" in Dotkernel, a term introduced in this release?", "acceptedAnswer": { "@type": "Answer", "text": "A term for a submodule and all its component files. For example, \"user\" is a dots of the frontend module, and one dots can belong to multiple modules, such as \"user\" belonging to both frontend and admin." } }, { "@type": "Question", "name": "Where are dots configuration values stored, compared to earlier versions?", "acceptedAnswer": { "@type": "Answer", "text": "They're stored in XML files inside the configs/dots folder. In previous versions, these values were hard-coded in the PHP files." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig index d092c35..bc04d86 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-2-2-release.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does the Dotkernel 1.2.2 release include?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel 1.2.2 is a bug-fix release that closes five issues: captcha error handling (try/catch), a pagination issue, a wrong admin link, notices and a fatal error found by an Acunetix scan, and an update to the copyright line in files." } }, { "@type": "Question", "name": "Why did all PHP files change in the 1.2.2 release?", "acceptedAnswer": { "@type": "Answer", "text": "Because of the fix for bug 35, which updated the copyright line, every PHP file in the codebase was touched, which is why the note in the post warns that all PHP files have changed." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig index 07ba863..8ceb8cc 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-0-release.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is new in the admin interface in Dotkernel 1.3.0?", "acceptedAnswer": { "@type": "Answer", "text": "1.3.0 adds a skin switcher for the admin, with several ready-made skins (blue, brown, gray, green) that can be set via the settings.admin.skin configuration value." } }, { "@type": "Question", "name": "How do I protect a page so only logged-in members can access it?", "acceptedAnswer": { "@type": "Answer", "text": "Add the line Dot_Auth::checkIdentity(); in the controller file above the code you want to protect - everything below that line requires the visitor to be logged in." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig index 983296e..f23e382 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-3-2-release.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What kind of release is Dotkernel 1.3.2?", "acceptedAnswer": { "@type": "Answer", "text": "It's mainly a maintenance release, containing many bug fixes, some refactoring, and a few minor features." } }, { "@type": "Question", "name": "What bugs were fixed in 1.3.2?", "acceptedAnswer": { "@type": "Answer", "text": "Fixes include a CSS issue on the admin phpinfo page, a warning in the admin dashboard, a WURFL cache issue and WURFL version issue in admin, a Dot_Paginator bug, a Zend Paginator double-query issue, and a database naming convention issue." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig index 7aba09a..f7a8173 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-5-0-released.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did Dotkernel jump from 1.3 straight to 1.5.0?", "acceptedAnswer": { "@type": "Answer", "text": "Because of the large amount of changes and the long time spent in development, the team chose to skip version 1.4 and go straight to 1.5.0." } }, { "@type": "Question", "name": "Did Dotkernel switch from Dojo to jQuery in 1.5.0?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Starting with 1.5.0, Dotkernel switched from Dojo to jQuery for its own distribution, though Dojo can still be used in your own projects." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig index 03f7367..cd773a8 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does LTS mean for Dotkernel 1.8.0?", "acceptedAnswer": { "@type": "Answer", "text": "LTS stands for Long-term support, a type of special version designed to be supported for longer than normal, which is particularly common for open-source software projects." } }, { "@type": "Question", "name": "What is the Plugin Architecture introduced in 1.8.0?", "acceptedAnswer": { "@type": "Answer", "text": "Starting with 1.8.0, Dotkernel uses Plugins to make extending the framework easier." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig index ef6dc6d..ae899ca 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What's new in Dotkernel 1.8.1?", "acceptedAnswer": { "@type": "Answer", "text": "The main change is Enhanced Cache Support, which means you can use tags in your cache system if the host supports it." } }, { "@type": "Question", "name": "How do I upgrade from 1.8.0 to 1.8.1?", "acceptedAnswer": { "@type": "Answer", "text": "The post provides a dedicated \"Upgrade from Dotkernel 1.8.0\" download link, separate from the full Dotkernel 1.8.1 package and the original Dotkernel 1.8.0 (LTS) download." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig index acfa950..5b342f4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-coding-standard.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What coding standard does Dotkernel follow?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel borrows its coding standard from the Zend Framework Coding Standard, with some exceptions described in this article." } }, { "@type": "Question", "name": "Tabs or spaces for indentation?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel indents with tabs, not spaces." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig index 882a5e7..6e359c8 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Where do Dotkernel's database naming conventions come from?", "acceptedAnswer": { "@type": "Answer", "text": "They are borrowed from FaZend's \"Rules of naming of database tables and columns,\" an open-source PHP framework based on Zend Framework." } }, { "@type": "Question", "name": "Should table names be singular or plural?", "acceptedAnswer": { "@type": "Answer", "text": "Singular table names only, for example user, category, product, order, orderProduct." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig index 38f4359..91686df 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-starting-with-mezzio-microframework-and-laminas-components.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dotkernel Light?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel Light is the smallest complete Mezzio application that includes only the bare-bones essentials. It's suitable as a presentation site, an introduction to the Mezzio microframework architecture, or a starting point for a more complex project where you want full control over functionality." } }, { "@type": "Question", "name": "What is the goal of Dotkernel Light?", "acceptedAnswer": { "@type": "Answer", "text": "It's designed to be the smallest complete Mezzio application, as well as an entry-level version of Dotkernel Frontend, presenting the beginner developer with as few moving parts as possible while still letting the more advanced developer have full control of the platform's functionality." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig index 0511b93..0758691 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-light-the-best-choice-for-your-presentation-site.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dotkernel Light designed for?", "acceptedAnswer": { "@type": "Answer", "text": "It's a good starting point for a project when you want full control over its functionality, and it easily grows into something more complex by integrating packages based on your requirements." } }, { "@type": "Question", "name": "What functionality does Dotkernel Light include out of the box?", "acceptedAnswer": { "@type": "Answer", "text": "Routing, Templating, Error handling, and Tests and code quality checks." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig index a5a1e11..660f01d 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-on-nginx.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What server stack was used to test Dotkernel on Nginx?", "acceptedAnswer": { "@type": "Answer", "text": "A clean CentOS 6.3 VPS running Nginx 1.4.1, PHP 5.4.16, and PHP-FPM, with the APC and GeoIP PHP modules installed." } }, { "@type": "Question", "name": "What is the Nginx equivalent of the main .htaccess file?", "acceptedAnswer": { "@type": "Answer", "text": "The directive try_files $uri $uri/ /index.php;, which sends all requests to the index.php file." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig index 08d4008..c307bf4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/dotkernel-template-engine.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the Dotkernel Template Engine based on?", "acceptedAnswer": { "@type": "Answer", "text": "It's an implementation of the PHPLib Template engine for PHP5." } }, { "@type": "Question", "name": "What is the main benefit of using it?", "acceptedAnswer": { "@type": "Answer", "text": "It separates application code from the presentation layer, and separates data manipulation from its final format (HTML, XML, or a formatted e-mail), letting you change a site's look and feel quickly without delving into a lot of PHP variable assignments and print statements." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig index c388e86..ffce11e 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-city-removed-from-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why was GeoIP City removed from Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "The City database on GeoIP extension version 1.1.0 and above was causing a segmentation fault, which resulted in crashing or outputting an error instead of executing the PHP code." } }, { "@type": "Question", "name": "Who is affected by this error?", "acceptedAnswer": { "@type": "Answer", "text": "Users running an older Dotkernel version together with GeoIP extension version 1.1.0 or newer, since the error comes from the extension's incompatibility with the database (dat) file." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig index 4bc8b61..f1f93f3 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/geoip-ip-address-location-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is GeoIP and what does it let Dotkernel do?", "acceptedAnswer": { "@type": "Answer", "text": "GeoIP is MaxMind's proprietary technology for IP geolocation data. Dotkernel uses it to get user statistics by country, determining a visitor's country, region, city, postal code, or area code in real time." } }, { "@type": "Question", "name": "Where does the GeoIP logic live in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "In library/Dot/Geoip.php, inside the getCountryByIp function." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig index f70e82c..75697a0 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-set-a-persistent-connection-to-database-with-zend-framework-zend-db-adapter.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Where do you configure a persistent database connection in a Dotkernel project?", "acceptedAnswer": { "@type": "Answer", "text": "The option should be added in application.ini, as shown in the Dotkernel approach used as an example in the article." } }, { "@type": "Question", "name": "What Zend_Db configuration line should NOT be used for a persistent connection?", "acceptedAnswer": { "@type": "Answer", "text": "database.params.options.PDO::ATTR_PERSISTENT = TRUE should not be used - the article states that it will not work." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig index 5c7d185..fb7bc9f 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/how-to-use-alerts-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is a Dot_Alert used for?", "acceptedAnswer": { "@type": "Answer", "text": "Alerts (Dot_Alert's) are e-mails usually sent to the site developers using PHP's mail() function. They shouldn't be used to send regular mail - they only notify the developer that something is wrong." } }, { "@type": "Question", "name": "What does the Dot_Alert class resemble, and what does an alert contain?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Alert resembles Dot_Email. Like a mail message, an alert has at least a sender, a subject, a destination and a message, and it can be sent." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig index a135cc4..c4b3975 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-5-6-on-windows.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do you test if the php_geoip extension is available on Zend Server?", "acceptedAnswer": { "@type": "Answer", "text": "Create a PHP file with var_dump(function_exists('geoip_database_info'));. It outputs true if the extension is available, or false if it isn't." } }, { "@type": "Question", "name": "Where can you download the php_geoip extension for Zend Server 5.6?", "acceptedAnswer": { "@type": "Answer", "text": "From http://windows.php.net/downloads/pecl/releases/geoip/1.0.8/, where several php_geoip.dll files are available for different architectures and compilers." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig index e8315cc..769b780 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/installing-geoip-extension-in-zend-server-6-on-windows.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Which php_geoip file should be downloaded for Zend Server 6.1?", "acceptedAnswer": { "@type": "Answer", "text": "Download the php_geoip-1.0.8-5.4-nts-vc9-x86.zip file from http://windows.php.net/downloads/pecl/releases/geoip/1.0.8/." } }, { "@type": "Question", "name": "Where does the php_geoip.dll go on Zend Server 6.1?", "acceptedAnswer": { "@type": "Answer", "text": "Copy the php_geoip.dll file from the archive to ZEND_PATH\\Zend\\ZendServer\\lib\\phpext\\." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig index 0b64566..574f533 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/migration-of-zend-framework-1-pear-channel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did the PEAR channel for Zend Framework 1 need to move?", "acceptedAnswer": { "@type": "Answer", "text": "The unofficial PEAR channel for Zend Framework 1 was hosted on Google Code, and once Google Code was closed the channel was forced to move to a new location." } }, { "@type": "Question", "name": "Why wasn't the project moved to GitHub instead?", "acceptedAnswer": { "@type": "Answer", "text": "The team was unable to migrate the project to github.com because the repository is more than 1 GB in size, so they built a special server dedicated to hosting only the PEAR channel for Zend Framework 1." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig index dc4a8bc..88dfef0 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/new-features-in-zend-framework-1-12.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What was announced for Zend Framework 1.12?", "acceptedAnswer": { "@type": "Answer", "text": "Matthew Weier O'Phinney announced the immediate availability of the first release candidate of the Zend Framework 1.12 series, 1.12.0RC1." } }, { "@type": "Question", "name": "What changed in Zend_Loader?", "acceptedAnswer": { "@type": "Answer", "text": "A number of autoloaders and autoloader facilities were back ported from ZF2, including Zend_Loader_StandardAutoloader, Zend_Loader_ClassMapAutoloader, and Zend_Loader_AutoloaderFactory, providing performant alternatives to the autoloading facilities already in the 1.X releases." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig index e2c0ce4..fe3d962 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/php-formatter-and-templates-for-zend-studio-10-1.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why does the PHP Formatter plugin for Zend Studio 10.1 need to be changed?", "acceptedAnswer": { "@type": "Answer", "text": "Because Zend donated the Zend Studio Formatter upstream to the PDT project, the Formatter plugin needs to be changed by replacing \"com.zend.php\" with \"org.eclipse.php\"." } }, { "@type": "Question", "name": "Where can I get Dotkernel's updated Formatter and Templates files for Zend Studio 10.1?", "acceptedAnswer": { "@type": "Answer", "text": "The updated PHP Formatter file for Zend Studio 10.1 and a templates file built according to the Dotkernel coding standard are both available as downloads linked in the article." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig index 2d1ad32..4eb8d95 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/protecting-admin-folder-with-htaccess-in-plesk.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do I protect the /admin folder with .htaccess in Plesk?", "acceptedAnswer": { "@type": "Answer", "text": "Add a Location block for /admin to the vhost.conf file (e.g. /var/www/vhosts/exampledomain.com/conf/vhost.conf) using AuthType Basic, an AuthName, an AuthUserFile pointing to a .htpasswd file, and Require valid-user." } }, { "@type": "Question", "name": "After editing vhost.conf, how do I apply the change and finish setup in Plesk?", "acceptedAnswer": { "@type": "Answer", "text": "Notify the server that vhost.conf has changed by running /usr/local/psa/admin/sbin/websrvmng -a, then create the .htpasswd file and upload it to the same conf directory referenced in the AuthUserFile directive." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig index 29b609f..443f0cc 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/replacing-laminas-mail-with-symfony-mailer-in-dot-mail.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig index 79f72ce..796349d 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/sending-emails-using-dot-email-component-and-zend-email.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dot_Email?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Email is a class that extends Zend_Mail, so all methods from Zend_Mail are available in it. Aside from its constructor, Dot_Email itself is composed of only two methods, with everything else inherited from Zend_Mail." } }, { "@type": "Question", "name": "What are the two methods that Dot_Email adds on top of Zend_Mail?", "acceptedAnswer": { "@type": "Answer", "text": "setContent($content, $format = 'text/plain') sets the body of the email by calling setBodyText() when the format is \"text/plain\" or setBodyHtml() when the format is \"text/html\". send() sets the transporter and calls the parent::send() method to send the email." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig index 4410e29..2381147 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/templating-in-dotkernel3.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Which templating engine does Dotkernel3 use?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel3 moved to the popular Twig Templating Engine." } }, { "@type": "Question", "name": "Why did Dotkernel move away from the previous templating engine?", "acceptedAnswer": { "@type": "Answer", "text": "The previous templating engine, although solid and robust, was also 10 years old and used techniques that had become slightly outdated, and it was one of the pain points in the previous version of Dotkernel." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig index 3b0ddca..d10ad55 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/test-article.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is this article for?", "acceptedAnswer": { "@type": "Answer", "text": "This is a test article added to the Dotkernel category for fixture and testing purposes." } } ] diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig index b66edff..9b832a2 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/using-dotkernel-with-composer-dependencies.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Do I need to manually include or require Composer dependencies in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "No. Composer automatically loads dependencies, so there is no need to include or require them yourself." } }, { "@type": "Question", "name": "What example does the article use to demonstrate Composer dependencies?", "acceptedAnswer": { "@type": "Answer", "text": "The article renders a Barcode using Zend Framework 1 as the Non-Namespaced dependency (installed with composer require 'zendframework/zendframework1') and Zend Framework 2 as the Namespaced dependency (installed with composer require 'zendframework/zend-barcode')." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig index 2e67101..a47290e 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/using-utf8-charset-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What needs to change to use UTF8 encoding in a Dotkernel-based system?", "acceptedAnswer": { "@type": "Answer", "text": "Both the database structure and the application.ini file need changes: all tables and columns must have a proper UTF8 collation (utf8_general_ci or utf8_bin), and application.ini must load the utf8 charset." } }, { "@type": "Question", "name": "What line should I add to application.ini to enable UTF8?", "acceptedAnswer": { "@type": "Answer", "text": "Add the line database.params.charset = utf8 to your application.ini file." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig index 5c50f2d..0acdb07 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-cloud-integration-in-dotkernel-1-6-0.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is WURFL Cloud?", "acceptedAnswer": { "@type": "Answer", "text": "WURFL Cloud is a new way that WURFL (Wireless Universal Resource FiLe) delivers its device detection services. Dotkernel integrated it as the default detection method for mobile devices starting with version 1.6.0." } }, { "@type": "Question", "name": "How do I get a functional device detection setup with WURFL Cloud?", "acceptedAnswer": { "@type": "Answer", "text": "Register for a Wurfl Cloud account with Scientia Mobile, choose device_os and mobile_browser as your capabilities, then copy your API key into application.ini in Dotkernel." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig index 96ea364..af7fd49 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/wurfl-php-api-license-incompatible-with-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did the WURFL PHP API license become incompatible with Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "The WURFL PHP API used to be licensed under GNU/GPL, compatible with both Zend Framework's new BSD license and Dotkernel's OSL 3.0 license. On June 6th, 2011, version 1.3.0 of the library changed its license to AGPL, turning it into a trial-only library for product evaluation, which is incompatible with keeping Dotkernel free." } }, { "@type": "Question", "name": "Which version introduced the license change, and when?", "acceptedAnswer": { "@type": "Answer", "text": "Version 1.3.0 of the WURFL PHP API, released June 6th, 2011, changed the license from GNU/GPL to AGPL. Dotkernel had updated to this version in its 1.5.0 release candidate without noticing the license change." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig index 4d796a4..7557496 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-auth-and-zend-acl-integrated-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "When were Zend_Auth and Zend_Acl integrated into Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Zend_Auth and Zend_Acl were integrated starting with Dotkernel version 1.5.0, as part of a refactor of the User and Admin models using the new Dot_Auth and Dot_Acl classes." } }, { "@type": "Question", "name": "How does Dot_Auth authenticate a user?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Auth authenticates the user by checking the database using Zend_Auth_Adapter_DbTable, setting the table name, the identity column to username, and the credential column to password." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig index a92e526..42460df 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the purpose of the Console bootstrap in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Starting with version 1.5, Dotkernel has a Console bootstrap to easily run PHP scripts from the command line, most commonly used to run cron jobs without using wget or going through Apache." } }, { "@type": "Question", "name": "Where is the Console bootstrap located?", "acceptedAnswer": { "@type": "Answer", "text": "The bootstrap is found in Console/index.php, and it has one controller in Controller.php with two example actions." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig index b63662f..b757021 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did Zend Framework drop the WURFL adapter?", "acceptedAnswer": { "@type": "Answer", "text": "According to Matthew Weier O'Phinney, Zend Framework Project Leader, the WURFL adapter was dropped from Zend_Http_UserAgent in the upcoming 1.12.0 branch due to a change in licensing by the WURFL project: the free version became AGPL, which raised too many concerns for end users regarding how their products must be licensed to comply." } }, { "@type": "Question", "name": "Does this change affect projects built with Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "No. Dotkernel uses its own WURFL adapter, so the removal of the WURFL adapter from Zend_Http_UserAgent in ZF 1.12.0 will not affect projects built with Dotkernel." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig index e067adf..e058786 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What variables does Zend_Registry contain in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "It contains startTime (the result of microtime() at the beginning of the request), configuration (loaded from configs/application.ini), router (loaded from configs/router.xml), database (the database adapter), settings (loaded from the database), requestModule/requestController/requestAction, request (additional request variables), seo (loaded from configs/dots/seo.xml), option (loaded from configs/dots/.xml), and session (the session object)." } }, { "@type": "Question", "name": "How do you get an instance of the registry?", "acceptedAnswer": { "@type": "Answer", "text": "Use $registry = Zend_Registry::getInstance(); and then access variables such as $registry->startTime or $registry->requestAction." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig index 6c5f1b2..4f134e2 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What session bug was found in Dotkernel 1.5.0?", "acceptedAnswer": { "@type": "Answer", "text": "In unknown circumstances, and only in IE8 and IE9, the session cookie was not saved on the client machine, forcing the user to log in over and over again. The only workaround found was to open a new tab with the same page." } }, { "@type": "Question", "name": "What caused the session cookie to be generated multiple times?", "acceptedAnswer": { "@type": "Answer", "text": "Investigation of the Dot_Session class showed the session cookie was generated 3 times, because the code called both regenerateID() and rememberMe() methods of Zend_Session. According to the Zend Framework documentation, this is unnecessary: if you call rememberMe(), you should not also call regenerateId(), since rememberMe() already calls it internally." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig index 1d22b25..c4dd056 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig index 851ef77..dd0525b 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/development-report-december-11-2017.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What documentation updates does this report cover?", "acceptedAnswer": { "@type": "Answer", "text": "Release notes were added for Dotkernel3 frontend and admin, a Webpack tutorial was added to the Prerequisites section, and the Api Endpoint Documentation Guidelines were updated with a slightly different layout and some corrections." } }, { "@type": "Question", "name": "Who was credited as a contributor in this report?", "acceptedAnswer": { "@type": "Answer", "text": "JapSeyz was thanked as a contributor." } } diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig index a9e0bb7..4b8ef3c 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-v4.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "When was Dotkernel Admin V4 released, and what is it built on?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel Admin V4 was officially released on 19 July 2022. It's Dotkernel's PSR-7 Admin, an application based on Mezzio, mainly for managing and displaying tabular data from one or more database components." } }, { "@type": "Question", "name": "What are the demo credentials for trying out Dotkernel Admin V4?", "acceptedAnswer": { "@type": "Answer", "text": "Username admin and password dotadmin, on the demo at https://admin4.dotkernel.net/." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig index db367f2..1b0abf1 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/dotkernel-admin-version-3-launched.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dotkernel Admin?", "acceptedAnswer": { "@type": "Answer", "text": "A basic admin panel based on Bootstrap ^4.5.0, using Doctrine to perform basic CRUD operations over a database, built as a collection of PSR-7 Middleware applications on top of Mezzio and Laminas components." } }, { "@type": "Question", "name": "Where can you see a live demo of version 3?", "acceptedAnswer": { "@type": "Answer", "text": "At admin.dotkernel.net." } }, diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig index 3afffd8..165a7b3 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-api.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig index e990b81..1d3fca4 100644 --- a/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/dotkernel3/php-8-3-support-in-dotkernel-frontend.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig index a621de0..8acf42f 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/complementary-admin-in-dotkernel-headless-platform.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is Dotkernel Admin?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel Admin is a fully-functional, independent application that lives in its own separate repository. It's built on the same Mezzio + Laminas foundation as Dotkernel API and includes a built-in UI with authentication, user management and a web interface." } }, { "@type": "Question", "name": "How do I install Dotkernel Admin?", "acceptedAnswer": { "@type": "Answer", "text": "Install it via Git into the folder of your choice with git clone https://github.com/dotkernel/admin.git ., then follow the step-by-step installation guide to configure the database credentials and run the migrations and fixtures that create and populate the database. Be sure to change the default credentials before going to production." } }, diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig index 71fce5b..b51798c 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-api-v6-the-root-of-dotkernel-headless-platform.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig index f6cae1f..fb45bc1 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-headless-platform-the-whats-hows-and-whys.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig index e221de4..ecb9e7d 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotkernel-queue-asynchronous-execution-in-dotkernel-headless-platform.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig index 7631a3c..957fbb8 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/dotmaker-generate-common-code-in-dotkernel.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig index c472e17..213e061 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/evolution-pattern-versus-api-versioning.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig index 465860b..5fae0b7 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/implementing-time-based-one-time-password-totp-in-dotkernel.jsonld.twig @@ -53,7 +53,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig index a73c14a..773fe9a 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/shared-core-submodule-in-dotkernel-headless-platform.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the Core submodule in Dotkernel's Headless Platform?", "acceptedAnswer": { "@type": "Answer", "text": "The Core submodule is a common codebase shared by the applications in your project (for example API, Admin and Queue). It ensures each application uses entities and services in the same way, so rather than updating each application separately, you update the relevant service in Core once and sync it across applications." } }, { "@type": "Question", "name": "What is the golden rule for the Core codebase?", "acceptedAnswer": { "@type": "Answer", "text": "The Core codebase is the only place which manages the database entities. As much as possible, all Doctrine entities must reside in Core, whose current location is src/Core." } }, diff --git a/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig b/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig index 5f41be4..2ef262f 100644 --- a/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/headless-platform/version-7-adds-postgresql-native-uuid-and-php-8-5.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What new features does Dotkernel API v7 introduce?", "acceptedAnswer": { "@type": "Answer", "text": "v7 adds support for UUID v7 using the native UUID data type, support for PostgreSQL, support for PHP 8.5 (API) and 8.4 (Admin), support for a database table prefix, improved database configuration, and replaces the binary data type for id (index) columns in favor of uuid." } }, { "@type": "Question", "name": "What features were removed in v7?", "acceptedAnswer": { "@type": "Answer", "text": "v7 removes the Evolution pattern's support for Method Deprecation, and drops support for MySQL, primarily because MySQL doesn't support UUID as a data type." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig index 1159ca1..7f0b3c9 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What causes the CORS error described in this article?", "acceptedAnswer": { "@type": "Answer", "text": "It appears when a browser blocks access to a resource on another origin because the server's response doesn't include an 'Access-Control-Allow-Origin' header, per the browser's CORS (Cross-Origin Resource Sharing) policy." } }, { "@type": "Question", "name": "What package solves CORS handling in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Mezzio CORS, installed by running 'composer require mezzio/mezzio-cors' in the application's root directory." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig index a452562..d5d822a 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What are the two ways to create an admin account in Dotkernel API?", "acceptedAnswer": { "@type": "Answer", "text": "You can either call the protected API endpoint POST /admin with a JSON body, or run the terminal command php ./bin/cli.php admin:create." } }, { "@type": "Question", "name": "Who can create an admin account via the API endpoint?", "acceptedAnswer": { "@type": "Answer", "text": "This action can be performed only by an authenticated admin/superuser, calling the protected POST /admin endpoint." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig index 0a6c840..0c7de40 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/database-migrations-and-how-to-use-them.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is a database migration?", "acceptedAnswer": { "@type": "Answer", "text": "A database migration is a change to the database schema. The Dotkernel stack integrates migrations (and seeders) via a package that adds the php dot command to the application." } }, { "@type": "Question", "name": "What are the benefits of using migrations and seeders?", "acceptedAnswer": { "@type": "Answer", "text": "They keep the database synchronised across the team with minimal effort, so column types and limits stay consistent instead of drifting (e.g. one dev using VARCHAR(50) and another VARCHAR(150)). Deployment scripts can also run migrations automatically in production, avoiding manual SSH access and risky manual database changes." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig index 22e28a4..aa1832d 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/doctrine-cache-in-mezzio-and-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Is this article still current?", "acceptedAnswer": { "@type": "Answer", "text": "The article notes that following version 2 of doctrine/cache, an updated version of this article covering Doctrine cache using Symfony Cache was published in 2024." } }, { "@type": "Question", "name": "Which three Doctrine cache types does this configure?", "acceptedAnswer": { "@type": "Answer", "text": "query_cache, metadata_cache and result_cache, configured through psr/container using PhpFileCache as the cache type." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig index d1e2523..28cb3cd 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/generating-a-doctrine-migration-without-dropping-custom-tables.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why does doctrine-migrations diff try to drop custom tables?", "acceptedAnswer": { "@type": "Answer", "text": "Because those tables are unmapped (there's no Doctrine entity describing them), so diff generates queries that drop them when it creates a new migration file." } }, { "@type": "Question", "name": "How do I avoid dropping unmapped tables when generating a migration?", "acceptedAnswer": { "@type": "Answer", "text": "Delete the migration containing the DROP queries, then re-run the diff command with a filter-expression parameter, e.g. vendor/bin/doctrine-migrations diff --filter-expression='/^(?!oauth_)/' on Linux/macOS (single quotes) or with double quotes on Windows." } }, diff --git a/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig b/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig index e70bb69..edf5a47 100644 --- a/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/how-to/installing-almalinux-10-in-wsl2-php-mariadb-composer-phpmyadmin.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What does this WSL recipe set up?", "acceptedAnswer": { "@type": "Answer", "text": "It sets up a full PHP development environment: WSL2, AlmaLinux 10, PHP, Apache, MariaDB, Git, Composer, Node.js and PhpMyAdmin." } }, { "@type": "Question", "name": "What are the OS and hardware requirements?", "acceptedAnswer": { "@type": "Answer", "text": "Windows 10 (Version 1903+ / Build 18362.1049+ for x64, or Version 2004+ / Build 19041+ for ARM64) or Windows 11, plus hardware virtualization support. If needed, enable the Virtual Machine Platform feature via dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart in an administrator PowerShell." } }, diff --git a/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig b/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig index 7b33b00..8fb3365 100644 --- a/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/javascript/javascript-email-validator.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What problem does this email validator solve?", "acceptedAnswer": { "@type": "Answer", "text": "Common email regex patterns fail to allow the plus (+) character in the username and the dash (-) character anywhere in the address or domain. The plus sign is used by many people, especially on Gmail, for categorization, and dashes commonly appear in domain names, so a validator that rejects them is too strict." } }, { "@type": "Question", "name": "What is the suggested regex solution?", "acceptedAnswer": { "@type": "Answer", "text": "The article proposes the regular expression ^+(\\.+)*@+(\\.+)*\\.({2,})$ (case-insensitive) as a replacement that permits both the plus and dash characters in the appropriate parts of the address." } }, diff --git a/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig b/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig index fa477c9..66704a1 100644 --- a/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/licensing/mit-versus-lgpl-in-practice-dotkernel-case.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did Dotkernel need a workaround for this package?", "acceptedAnswer": { "@type": "Answer", "text": "An analysis found that an upstream package, matomo/device-detector, was licensed under LGPL v3, which requires developers to share their derivative code publicly. Since Dotkernel's own projects use the MIT license, and the more restrictive license would have to apply to the whole application, this conflicted with contractual obligations to keep client code business and enterprise friendly." } }, { "@type": "Question", "name": "Where was the LGPL v3 package being used?", "acceptedAnswer": { "@type": "Answer", "text": "The matomo/device-detector package was used in Dotkernel's dot-user-agent-sniffer package to identify the user agent and use the results in internal reports." } }, diff --git a/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig b/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig index 025f300..712a086 100644 --- a/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/middleware/dotkernel-light-improvements-psr-15-handlers-vite-phpstan.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why did Dotkernel Light switch from controllers to handlers?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel Light switched to PSR-15 handlers instead of dotkernel/dot-controller (which isn't going away, but is no longer used here). Since the request can be filtered or augmented by the time it reaches custom code in a middleware architecture, handlers split the code into more manageable chunks and a cleaner file structure, and make an application's functionality easier to figure out." } }, { "@type": "Question", "name": "What naming pattern is used for the new PSR-15 handlers?", "acceptedAnswer": { "@type": "Answer", "text": "A naming pattern was devised that highlights the method, resource, and action for each handler file, so file names reflect their functionality at a glance, making navigation and onboarding easier." } }, diff --git a/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig b/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig index 9c9459d..ca46ff1 100644 --- a/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/middleware/handling-dynamic-routing-using-fastroute-in-dotkernel.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the goal of this dynamic routing update?", "acceptedAnswer": { "@type": "Answer", "text": "The goal is to replace the static way of creating routes with a more dynamic implementation, resulting in a cleaner approach that is easier to set up and review at a glance." } }, { "@type": "Question", "name": "How were routes configured in the old, static approach?", "acceptedAnswer": { "@type": "Answer", "text": "Each module had its own RoutesDelegator.php file in the src folder, with hard-coded route entries. Each route needed a method, a path used to direct execution to a handler, a handler like GetPageViewHandler, and a unique route name. In a live application the route list can grow to many entries grouped across modules, meaning multiple RoutesDelegators had to be checked when a routing error occurred." } }, diff --git a/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig b/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig index 4b84aab..ee060db 100644 --- a/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/middleware/replacing-controllers-with-psr-15-compliant-handlers-in-dotkernel-light.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is the goal of replacing controllers with PSR-15 handlers?", "acceptedAnswer": { "@type": "Answer", "text": "The goal is to implement PSR-15 handlers into Dotkernel Light, keeping the application up-to-date with recommended design guidelines, ensuring it stays secure while implementing standards widely adopted by the PHP community." } }, { "@type": "Question", "name": "What makes handlers better than controllers?", "acceptedAnswer": { "@type": "Answer", "text": "Handlers split code into manageable chunks instead of one large controller file with several actions, following the Single-responsibility Principle (the S in SOLID). Each action becomes its own class, making handlers easier to maintain, refactor and test, easier to expand with new functionality, and simpler to write focused tests for." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig index bc35cd1..1151ad6 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/almalinux-9-in-wsl2-install-php-apache-mariadb-composer-phpmyadmin.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do I check if my machine is ready for WSL2?", "acceptedAnswer": { "@type": "Answer", "text": "Open Windows Terminal and run wsl -v. If it returns version information, WSL2 is installed. If you get an error instead, WSL is not completely installed and you need to follow the linked setup guide first." } }, { "@type": "Question", "name": "How do I download and install AlmaLinux 9?", "acceptedAnswer": { "@type": "Answer", "text": "Open Microsoft Store, search for AlmaLinux, select AlmaLinux 9, and install it. Clicking Open launches it in Windows Terminal, where the installer prompts for your username, password, and password confirmation." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig index 73c5103..c35c738 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/php-5-3-6-released-no-upgrade-possible-for-wampserver.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Why can't WampServer users upgrade to PHP 5.3.6?", "acceptedAnswer": { "@type": "Answer", "text": "PHP 5.3.6 no longer provides builds created with Visual Studio C++ 6 for Windows users. Since WampServer is built using VC++ 6, upgrading isn't possible without rewriting the entire WampServer package from scratch." } }, { "@type": "Question", "name": "Where can WampServer users find more details about this issue?", "acceptedAnswer": { "@type": "Answer", "text": "More details are available on the WampServer forum, linked in this article." } } diff --git a/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig index ab78297..cf61c06 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/php-environment-development-staging-production.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is a \"server environment\" in hosted software development?", "acceptedAnswer": { "@type": "Answer", "text": "It refers to a server tier designated to a specific stage in a release process. The purpose of using different environments is to improve the development, testing and release processes in client-server applications." } }, { "@type": "Question", "name": "What is the development environment used for?", "acceptedAnswer": { "@type": "Answer", "text": "It's the working environment for individual developers or small teams, where the developer works on local host, separate from the rest of the team, allowing changes to be made without worrying about altering the work of other team members." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig index 9c6eb5a..9512d97 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/php-support-back-in-aptana-3-0.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "Is Aptana 3.0 available yet, and where can it be downloaded?", "acceptedAnswer": { "@type": "Answer", "text": "Aptana 3.0 is in beta stage and can be downloaded from the official Aptana site." } }, { "@type": "Question", "name": "Will PHP support in Aptana 3.0 be a separate plugin?", "acceptedAnswer": { "@type": "Answer", "text": "No. According to an announcement on Aptana's forum, PHP support is coming back and is being developed and integrated directly into the Studio 3 core, rather than delivered as a separate plugin." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig index de7e437..4f1239d 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/protection-against-sql-injection-using-pdo-and-zend-framework.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What is SQL injection?", "acceptedAnswer": { "@type": "Answer", "text": "SQL injection is a technique that exploits a security vulnerability occurring in the database layer of an application. Usually, user input is not filtered by the script and is passed directly into a SQL statement." } }, { "@type": "Question", "name": "What is PDO and what kind of abstraction does it provide?", "acceptedAnswer": { "@type": "Answer", "text": "PDO (PHP Data Objects) is a database access layer providing a standardized method of access to multiple databases. It provides a data-access abstraction layer, meaning you apply the same functions to issue queries and fetch data regardless of which database you're using. However, PDO does not provide a database abstraction - it doesn't rewrite SQL or emulate missing database features." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig index fc71b79..5a8f979 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/welcome-to-the-10th-zend-certified-engineer-in-dotboost-team.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What milestone is this article announcing?", "acceptedAnswer": { "@type": "Answer", "text": "Dotboost Technologies Inc. is announcing that the 10th member of its team has passed the Zend Certified Engineer (ZCE) exam, a milestone the company highlights as part of its commitment to top-level PHP development for clients." } }, { "@type": "Question", "name": "What are the team's next certification-related plans?", "acceptedAnswer": { "@type": "Answer", "text": "The next step is to implement Zend Framework 2 best practices and to pursue the Zend Framework 2 Certified Architect exam. Additionally, starting in 2014, Zend Certification will become mandatory for every developer on the team." } } diff --git a/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig index da986ce..c782c7f 100644 --- a/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-development/zend-server-5-5-quick-setup-on-windows.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "How do you enable mod_rewrite after a fresh Zend Server 5.5 install on Windows?", "acceptedAnswer": { "@type": "Answer", "text": "Open ZEND_INSTALATION_PATH/Apache2/conf/httpd.conf, change the AllowOverride directive from None to All, then restart the Apache service." } }, { "@type": "Question", "name": "What PHP directive changes are recommended in the Zend Server admin interface?", "acceptedAnswer": { "@type": "Answer", "text": "In the Zend Server administration interface (http://localhost:10081/ZendServer/), under Server Setup -> Directives, set the date timezone to America/New_York, set display_errors to on, and set error_reporting to -1." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig index 55e49aa..fd52126 100644 --- a/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-troubleshooting/fix-installing-pear-packages-with-php-7-2.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What error occurs when installing PEAR packages with PHP 7.2?", "acceptedAnswer": { "@type": "Answer", "text": "Running a command like pear install PHP_CodeSniffer produces the fatal error \"Cannot use result of built-in function in write context\" in Archive/Tar.php on line 639, because the function is called by reference." } }, { "@type": "Question", "name": "How do you fix the \"Cannot use result of built-in function in write context\" error?", "acceptedAnswer": { "@type": "Answer", "text": "Go to the line indicated in the error (line 639) and replace \"$v_att_list = &func_get_args();\" with \"$v_att_list = func_get_args();\", so func_get_args() is no longer called by reference." } }, diff --git a/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig b/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig index 23daaa2..d37b59e 100644 --- a/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig +++ b/src/Blog/templates/page/JSON-LD/php-troubleshooting/where-is-the-intl-php-extension-problem-solved.jsonld.twig @@ -39,7 +39,7 @@ }, { "@type": "FAQPage", - "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}", + "@id": "{{ app.baseUrl ~ path('page::blog-resource', {categorySlug: article.category.slug, slug: article.slug}) }}#faq", "mainEntity": [ { "@type": "Question", "name": "What errors indicate the PHP Intl extension is missing?", "acceptedAnswer": { "@type": "Answer", "text": "Typical errors include \"Zend InputFilter requires intl PHP extension\" and \"The requested PHP extension intl is missing from your system.\" These happen because the PHP Intl extension isn't installed or enabled." } }, { "@type": "Question", "name": "What is the PHP Intl extension used for?", "acceptedAnswer": { "@type": "Answer", "text": "Intl (Internationalization extension) is a wrapper for the ICU library that lets PHP programmers perform locale-aware operations, including formatting, transliteration, encoding conversion, and calendar operations. It can be installed bundled since PHP 5.3.0, or as a separate PECL extension since PHP 5.2.0." } },