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 5df32311..e0aabacf 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 @@ -43,7 +43,7 @@ "mainEntity": [ { "@type": "Question", - "name": "What is DotKernel API?", + "name": "What is Dotkernel API?", "acceptedAnswer": { "@type": "Answer", "text": "It is a Zend Expressive 3 application aiming to help developers quickly and efficiently develop an API." @@ -51,7 +51,7 @@ }, { "@type": "Question", - "name": "What key libraries does DotKernel API 1.0.0 use?", + "name": "What key libraries does Dotkernel API 1.0.0 use?", "acceptedAnswer": { "@type": "Answer", "text": "Among others, it's built on the ezimuel/zend-expressive-api skeleton, and uses dotkernel/dot-annotated-services for dependency injection, dotkernel/dot-console for console applications, dotkernel/dot-errorhandler for error logging, dotkernel/dot-mail for SMTP email, zend-expressive-authentication-oauth2 for OAuth2 authentication, zend-expressive-authorization-rbac for role-based permissions, and swagger-api/swagger-ui for OpenAPI 3 documentation." @@ -59,7 +59,7 @@ }, { "@type": "Question", - "name": "What features does DotKernel API 1.0.0 offer out of the box?", + "name": "What features does Dotkernel API 1.0.0 offer out of the box?", "acceptedAnswer": { "@type": "Answer", "text": "Secure authentication via OAuth2, two user roles (admin and member), where admins can manage any user account and members can manage only their own, plus OpenAPI 3 documentation with an interactive interface developers can use to integrate the API." 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 c4c8dd80..985fb763 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 @@ -42,10 +42,10 @@ "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "What happens when you run composer update?", "acceptedAnswer": { "@type": "Answer", "text": "If the vendor folder already exists, composer checks for and applies updates to the packages. If it doesn't exist, composer creates the vendor folder containing all requested packages, along with an autoload file." } }, { "@type": "Question", "name": "How do you safely load the Composer autoloader in case Composer isn't present?", "acceptedAnswer": { "@type": "Answer", "text": "Check whether vendor/autoload.php exists using file_exists() before calling require_once() on it, and handle the case gracefully (for example by loading fallbacks) if the path is missing." } }, - { "@type": "Question", "name": "Which DotKernel versions does this apply to?", "acceptedAnswer": { "@type": "Answer", "text": "The article states it works for any DotKernel 1.x version, as long as the server is running PHP greater than 5.4.0." } } + { "@type": "Question", "name": "Which Dotkernel versions does this apply to?", "acceptedAnswer": { "@type": "Answer", "text": "The article states it works for any Dotkernel 1.x version, as long as the server is running PHP greater than 5.4.0." } } ] } ] 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 e7863c27..59c40140 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "Why do you need to clear the cache after applying the patch?", "acceptedAnswer": { "@type": "Answer", "text": "Because the OS and browser XML files are cached, so the new icons won't show up until the cache is cleared." } }, { "@type": "Question", "name": "Will applying the patch overwrite existing files?", "acceptedAnswer": { "@type": "Answer", "text": "You'll be prompted to replace 2 files (browser.xml and os.xml) and should agree, and also agree to merge the folders' contents since the other files listed are added rather than replaced." } } 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 49657cd5..691e03d4 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, { "@type": "Question", "name": "Where is the cache configured?", "acceptedAnswer": { "@type": "Answer", "text": "In /configs/application.ini, where you can enable or disable caching, set how long the cache stays valid, choose the cache namespace, and pick the storage provider (File or APC). The article recommends disabling the cache in development mode." } }, { "@type": "Question", "name": "Do you need to manually load the cache engine?", "acceptedAnswer": { "@type": "Answer", "text": "No, it's automatically loaded during kernel initialization (Dot_Kernel::initialize()). Manually calling Dot_Cache::loadCache() is only needed if you want to use caching outside of that normal initialization." } }, 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 3f59dd8d..81e05aa3 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, { "@type": "Question", "name": "What values can cache.factory take?", "acceptedAnswer": { "@type": "Answer", "text": "The cache.factory value is the cache service to use, and the article lists two options: file or apc." } }, { "@type": "Question", "name": "Why bother setting the individual/backend cache settings like cache.file.cache_dir?", "acceptedAnswer": { "@type": "Answer", "text": "These settings are optional, but the article highly recommends setting them, otherwise other projects might end up using the same cache." } } 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 2fe973cc..5ecd4341 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, - { "@type": "Question", "name": "Why choose the device_os and mobile_browser capabilities specifically?", "acceptedAnswer": { "@type": "Answer", "text": "With these two capabilities, DotKernel's built-in methods can also derive extra capabilities such as isMobile, isSmartPhone, isIphone, isAndroid, isBlackberry, isSymbian, and isWindowsMobile. Choosing other capabilities from scientiamobile results in wrong detection of these extra capabilities." } }, + { "@type": "Question", "name": "Why choose the device_os and mobile_browser capabilities specifically?", "acceptedAnswer": { "@type": "Answer", "text": "With these two capabilities, Dotkernel's built-in methods can also derive extra capabilities such as isMobile, isSmartPhone, isIphone, isAndroid, isBlackberry, isSymbian, and isWindowsMobile. Choosing other capabilities from scientiamobile results in wrong detection of these extra capabilities." } }, { "@type": "Question", "name": "What happened to the old Dot_UserAgent_Wurfl class?", "acceptedAnswer": { "@type": "Answer", "text": "It was removed and replaced with the new Dot_UserAgent_WurflCloud class, which uses the Wurfl Cloud API adapter." } }, { "@type": "Question", "name": "What does the redirect setting in application.ini control?", "acceptedAnswer": { "@type": "Answer", "text": "When resources.useragent.wurflcloud.redirect is TRUE (the default), visitors from the frontend are redirected to the mobile module the first time a mobile device is detected." } } ] 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 50a65522..84fd7f73 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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 feff2e26..ccecc961 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 @@ -41,11 +41,11 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "What is DotKernel 3?", "acceptedAnswer": { "@type": "Answer", "text": "A collection of PSR-7 Middleware applications built on top of the Zend Expressive microframework, composed of a set of custom and extended Zend Framework 3 components, with an architecture based on Middleware. It implements PSR-1, PSR-2, PSR-4, PSR-7, and PSR-11." } }, - { "@type": "Question", "name": "How many applications make up DotKernel 3?", "acceptedAnswer": { "@type": "Answer", "text": "At the time of the article, there were two available applications, Frontend and Admin, with a third one, API, under development." } }, - { "@type": "Question", "name": "When someone writes just \"DotKernel\", which version is meant?", "acceptedAnswer": { "@type": "Answer", "text": "In posts older than 2017, \"DotKernel\" referred to DotKernel 1, since it was the only version. Since the release of DotKernel 3, \"DotKernel\" refers to DotKernel 3, and all future references to DotKernel 1 are made explicitly." } } + { "@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." } }, + { "@type": "Question", "name": "What is Dotkernel 3?", "acceptedAnswer": { "@type": "Answer", "text": "A collection of PSR-7 Middleware applications built on top of the Zend Expressive microframework, composed of a set of custom and extended Zend Framework 3 components, with an architecture based on Middleware. It implements PSR-1, PSR-2, PSR-4, PSR-7, and PSR-11." } }, + { "@type": "Question", "name": "How many applications make up Dotkernel 3?", "acceptedAnswer": { "@type": "Answer", "text": "At the time of the article, there were two available applications, Frontend and Admin, with a third one, API, under development." } }, + { "@type": "Question", "name": "When someone writes just \"Dotkernel\", which version is meant?", "acceptedAnswer": { "@type": "Answer", "text": "In posts older than 2017, \"Dotkernel\" referred to Dotkernel 1, since it was the only version. Since the release of Dotkernel 3, \"Dotkernel\" refers to Dotkernel 3, and all future references to Dotkernel 1 are made explicitly." } } ] } ] 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 d6253dce..0d5d2a5b 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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 7ab10366..b67c1f7f 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 @@ -41,11 +41,11 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, - { "@type": "Question", "name": "What dots does the admin module include by default?", "acceptedAnswer": { "@type": "Answer", "text": "admin, user, and system, to make it easier to start an application from DotKernel." } }, + { "@type": "Question", "name": "What dots does the admin module include by default?", "acceptedAnswer": { "@type": "Answer", "text": "admin, user, and system, to make it easier to start an application from Dotkernel." } }, { "@type": "Question", "name": "What library classes were added or updated in 1.2.0?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Geoip and Dot_Seo were newly implemented, while Dot_Curl and Dot_Session were updated, with each module now having its own session." } }, - { "@type": "Question", "name": "How are SQL queries written in DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "All SQL queries are written as prepared statements, a practice the article strongly encourages." } } + { "@type": "Question", "name": "How are SQL queries written in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "All SQL queries are written as prepared statements, a practice the article strongly encourages." } } ] } ] 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 07b053e5..04bdc6dc 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "How can I upgrade from a previous version to 1.2.2?", "acceptedAnswer": { "@type": "Answer", "text": "You can download just the changed files from 1.2.1 to 1.2.2 using the upgrade package linked in the post, or check the ChangeLog 1.2.2 for full details of what 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 ddba7ec5..bb6c1a9d 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "What happened to resource.xml in this release?", "acceptedAnswer": { "@type": "Answer", "text": "resource.xml was deleted and its content split between two new files, route.xml and dots.xml." } }, - { "@type": "Question", "name": "Is DotKernel 1.3.0 backward compatible with earlier versions?", "acceptedAnswer": { "@type": "Answer", "text": "No. Because of the XML file reorganization (bug 69), 1.3.0 is not compatible with previous versions." } } + { "@type": "Question", "name": "Is Dotkernel 1.3.0 backward compatible with earlier versions?", "acceptedAnswer": { "@type": "Answer", "text": "No. Because of the XML file reorganization (bug 69), 1.3.0 is not compatible with previous versions." } } ] } ] 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 d09746f0..22072618 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, - { "@type": "Question", "name": "What minor features and refactoring were included?", "acceptedAnswer": { "@type": "Answer", "text": "Minor features include a refactor of validIP in Dot_Kernel and showing the WURFL date and API version in admin. Refactoring covered Zend_Paginator and added a dojo dijit theme to DotKernel." } } + { "@type": "Question", "name": "What minor features and refactoring were included?", "acceptedAnswer": { "@type": "Answer", "text": "Minor features include a refactor of validIP in Dot_Kernel and showing the WURFL date and API version in admin. Refactoring covered Zend_Paginator and added a dojo dijit theme to Dotkernel." } } ] } ] 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 71f2e4fb..d20d6078 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 @@ -41,11 +41,11 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "What is Dot_Model and why was it introduced?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Model is a base class introduced to reduce code duplication between admin and frontend models. Both admin- and frontend-specific model classes (such as User) inherit from a shared Dot_Model_User class that holds the common code." } }, { "@type": "Question", "name": "How does the \"dashed controllers\" feature work?", "acceptedAnswer": { "@type": "Answer", "text": "The controller name parsing was changed so a URL like www.example.com/search-article correctly calls SearchArticleController.php, allowing multi-word controller names split with dashes without breaking the coding standard." } }, - { "@type": "Question", "name": "How much changed in the 1.5.0 release?", "acceptedAnswer": { "@type": "Answer", "text": "About 250 commits went into the SVN repository since the previous release, so the blog post only covers the highlights - the full DotKernel 1.5.0 download is available to try out." } } + { "@type": "Question", "name": "How much changed in the 1.5.0 release?", "acceptedAnswer": { "@type": "Answer", "text": "About 250 commits went into the SVN repository since the previous release, so the blog post only covers the highlights - the full Dotkernel 1.5.0 download is available to try out." } } ] } ] 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 5e99feb4..4963912e 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 @@ -41,11 +41,11 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "How does 1.8.0 load faster than previous versions?", "acceptedAnswer": { "@type": "Answer", "text": "It supports APC and File Caching within the framework, so XML files and config files are cached to maximize response speed." } }, { "@type": "Question", "name": "What is Dot_Request?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Request is a new class that gives you control over the request data before you use it, so that the variables $_SERVER, $_GET and $_POST are only accessed within controllers." } }, - { "@type": "Question", "name": "What was removed from DotKernel in 1.8.0?", "acceptedAnswer": { "@type": "Answer", "text": "WURFL integration was removed (mobile device detection is now handled separately, and WURFL can be added as a plugin), and support for multiple SMTP transporters was removed (it can also be added as a plugin)." } }, + { "@type": "Question", "name": "What was removed from Dotkernel in 1.8.0?", "acceptedAnswer": { "@type": "Answer", "text": "WURFL integration was removed (mobile device detection is now handled separately, and WURFL can be added as a plugin), and support for multiple SMTP transporters was removed (it can also be added as a plugin)." } }, { "@type": "Question", "name": "What security-related additions does 1.8.0 include?", "acceptedAnswer": { "@type": "Answer", "text": "A security scan in the Admin Dashboard shows recommended settings, admin failed-login notifications are sent to all developers listed in devEmails (not just the first admin), and a new Alert System can notify developers if something goes wrong." } } ] } 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 428d4a79..0d8217ae 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 @@ -41,8 +41,8 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } } + { "@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 a744744e..6ee687fb 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 @@ -41,8 +41,8 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "How should classes, interfaces, and filenames be named?", "acceptedAnswer": { "@type": "Answer", "text": "Classes start with the prefix Dot_ (e.g. Dot_Templates), interfaces end with the string \"Interface\" (e.g. Dot_Db_Interface), and all PHP files use the \".php\" extension, with no fancy extensions like \".inc\"." } }, { "@type": "Question", "name": "How should curly braces be placed for control statements?", "acceptedAnswer": { "@type": "Answer", "text": "Every opening curly brace starts on its own new line after the statement, and its matching closing brace also goes on a new line, aligned in the same column as the opening brace, for better indentation of the code." } } ] 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 313b3171..ab6f0420 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "How should foreign key columns be named?", "acceptedAnswer": { "@type": "Answer", "text": "A foreign key column takes the name of the referenced table plus the name of the referenced column. For example, referencing table admin's Id column produces a column named adminId." } }, { "@type": "Question", "name": "What naming pattern is used for CONSTRAINT names?", "acceptedAnswer": { "@type": "Answer", "text": "The pattern is FK_referencedTableName_tableName, for example CONSTRAINT `FK_admin_adminLogin`." } }, 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 62b7551b..3ed2bf9c 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 @@ -44,7 +44,7 @@ { "@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." } }, { "@type": "Question", "name": "How is the configs folder protected from web access in Nginx?", "acceptedAnswer": { "@type": "Answer", "text": "By adding a location block matching ^/configs/ that returns deny all;." } }, - { "@type": "Question", "name": "How was the DotKernel codebase deployed onto the server?", "acceptedAnswer": { "@type": "Answer", "text": "It was exported directly from SVN using svn export --force http://v1.dotkernel.net/svn/trunk/ /var/www/html." } } + { "@type": "Question", "name": "How was the Dotkernel codebase deployed onto the server?", "acceptedAnswer": { "@type": "Answer", "text": "It was exported directly from SVN using svn export --force http://v1.dotkernel.net/svn/trunk/ /var/www/html." } } ] } ] 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 03511d51..41bc5818 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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/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 4e504144..b43df0db 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "What does Zend_Config provide in DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "It provides multiple backends for configuration storage and a simple, intuitive, object-oriented interface for accessing it. DotKernel stores configuration as simple PHP arrays, which are then wrapped by Zend_Config." } }, + { "@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." } }, + { "@type": "Question", "name": "What does Zend_Config provide in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "It provides multiple backends for configuration storage and a simple, intuitive, object-oriented interface for accessing it. Dotkernel stores configuration as simple PHP arrays, which are then wrapped by Zend_Config." } }, { "@type": "Question", "name": "What role do Zend_Db and Zend_Db_Table play?", "acceptedAnswer": { "@type": "Answer", "text": "Zend_Db_Table is a classic implementation of the Table Data Gateway and Row Data Gateway design patterns, allowing easy and intuitive access to database tables and rows, as well as an entry point for custom business logic surrounding the data." } }, { "@type": "Question", "name": "What are Zend_Mail and Zend_Registry used for?", "acceptedAnswer": { "@type": "Answer", "text": "Zend_Mail composes and sends both text and MIME-compliant multipart e-mail, via the default Zend_Mail_Transport_Sendmail transport or via Zend_Mail_Transport_Smtp. Zend_Registry is a container for storing objects and values in the application space, so the same object is always available throughout the application, as an alternative to using global storage." } } ] 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 b4b828c3..0111b617 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "How does the error show up to visitors?", "acceptedAnswer": { "@type": "Answer", "text": "On some operating systems, Apache still responds with HTTP Status Code 200 (OK) but with a page containing a generic \"internal error or misconfiguration\" message, and the error might not be logged since it's generated by the GeoIP extension rather than by the PHP code." } }, - { "@type": "Question", "name": "How can you get rid of the error if you don't need GeoIP City?", "acceptedAnswer": { "@type": "Answer", "text": "Comment out or remove the relevant lines in DotKernel/admin/System.php (the Admin/System model) and in library/Dot/GeoIp.php (the Dot_GeoIp class). These changes were also made in the latest version of DotKernel, but this fix should only be used if you don't intend to use GeoIP City." } }, + { "@type": "Question", "name": "How can you get rid of the error if you don't need GeoIP City?", "acceptedAnswer": { "@type": "Answer", "text": "Comment out or remove the relevant lines in Dotkernel/admin/System.php (the Admin/System model) and in library/Dot/GeoIp.php (the Dot_GeoIp class). These changes were also made in the latest version of Dotkernel, but this fix should only be used if you don't intend to use GeoIP City." } }, { "@type": "Question", "name": "What does the article recommend going forward?", "acceptedAnswer": { "@type": "Answer", "text": "It recommends special coding for GeoIP City and for the GeoIP extension in general, and notes that GeoIP is an obsolete extension, with Maxmind recommending GeoIP2 instead." } } ] } 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 8b4b68a6..c5b24521 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "What does getCountryByIp do when the mod_geoip PECL extension isn't installed?", "acceptedAnswer": { "@type": "Answer", "text": "It falls back to the existing externals/geoip/GeoIP.dat file bundled with DotKernel (downloadable from MaxMind if not present)." } }, + { "@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." } }, + { "@type": "Question", "name": "What does getCountryByIp do when the mod_geoip PECL extension isn't installed?", "acceptedAnswer": { "@type": "Answer", "text": "It falls back to the existing externals/geoip/GeoIP.dat file bundled with Dotkernel (downloadable from MaxMind if not present)." } }, { "@type": "Question", "name": "What happens when mod_geoip is installed and GeoIP.dat exists?", "acceptedAnswer": { "@type": "Answer", "text": "It uses the built-in PHP functions geoip_country_code_by_name and geoip_country_name_by_name to get the country code and name." } }, { "@type": "Question", "name": "What if GeoIP.dat is missing but GeoIPCity.dat exists, or neither file exists?", "acceptedAnswer": { "@type": "Answer", "text": "If GeoIPCity.dat exists, it uses the PHP function geoip_record_by_name to get the country code and name. If neither .dat file exists, it behaves the same as when mod_geoip isn't installed, falling back to externals/geoip/GeoIP.dat." } } ] 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 76ad4ecd..0546dac1 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 @@ -44,7 +44,7 @@ { "@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." } }, { "@type": "Question", "name": "Which error handler is used by default?", "acceptedAnswer": { "@type": "Answer", "text": "The plain error handler is selected by default as a fallback, and this can be overwritten through the config file, which also registers factories for both handlers plus an alias to switch between them." } }, - { "@type": "Question", "name": "What must already be in place before configuring the logging error handler?", "acceptedAnswer": { "@type": "Answer", "text": "A configured logger as described in the \"Logging with dot-log in Zend Expressive and DotKernel\" article, with the logger named default_logger as used in the package's config example." } }, + { "@type": "Question", "name": "What must already be in place before configuring the logging error handler?", "acceptedAnswer": { "@type": "Answer", "text": "A configured logger as described in the \"Logging with dot-log in Zend Expressive and Dotkernel\" article, with the logger named default_logger as used in the package's config example." } }, { "@type": "Question", "name": "Why might whoops interfere when testing dot-errorhandler?", "acceptedAnswer": { "@type": "Answer", "text": "dot-errorhandler is meant to be a silent logger for staging and production environments. To actually test it, development mode should be disabled, otherwise whoops will catch the errors and show them to the developer instead." } }, { "@type": "Question", "name": "How were errors triggered to test the error handlers?", "acceptedAnswer": { "@type": "Answer", "text": "By throwing Exceptions, the most common case, and by raising warnings/errors such as dividing a number by zero (e.g. 16/0) or casting an array to a string." } } ] 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 cc66d280..914c3957 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, - { "@type": "Question", "name": "Where can the Highcharts library be found in a DotKernel project?", "acceptedAnswer": { "@type": "Answer", "text": "The Highcharts library is located in the externals directory of the project." } } + { "@type": "Question", "name": "Where can the Highcharts library be found in a Dotkernel project?", "acceptedAnswer": { "@type": "Answer", "text": "The Highcharts library is located in the externals directory of the project." } } ] } ] 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 ff6099ab..34441168 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 @@ -44,9 +44,9 @@ { "@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." } }, { "@type": "Question", "name": "Do I need to change anything if my logs are already written to a single static file?", "acceptedAnswer": { "@type": "Answer", "text": "No. If your application logs messages in a single file with a static name (e.g. log/dk.log), you can skip the rest of the article - logging will work as before." } }, - { "@type": "Question", "name": "How do I group log files by date when using DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "In config/autoload/error-handling.global.php, locate every log writer by navigating to dot_log->loggers->default_logger->writers and replace a stream value like sprintf('%s/../../log/error-log-%s.log', __DIR__, date('Y-m-d')) with __DIR__ . '/../../log/error-log-{Y}-{m}-{d}.log'." } }, - { "@type": "Question", "name": "How do I group log files by date without DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "In your dot-log config (e.g. /config/autoload/log.global.php), locate every writer under dot_log->loggers->my_logger->writers and replace a dynamic stream value such as sprintf('%s/../../log/dk-%s.log', __DIR__, date('Y-m-d')) with a formatter string like __DIR__ . '/../../log/error-log-{Y}-{m}-{d}.log'." } }, - { "@type": "Question", "name": "What must I do after changing the stream configuration?", "acceptedAnswer": { "@type": "Answer", "text": "Clear the config cache. In a DotKernel application, run php bin/clear-config-cache.php; in a non-DotKernel setup, make sure you clear your application's config before usage." } } + { "@type": "Question", "name": "How do I group log files by date when using Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "In config/autoload/error-handling.global.php, locate every log writer by navigating to dot_log->loggers->default_logger->writers and replace a stream value like sprintf('%s/../../log/error-log-%s.log', __DIR__, date('Y-m-d')) with __DIR__ . '/../../log/error-log-{Y}-{m}-{d}.log'." } }, + { "@type": "Question", "name": "How do I group log files by date without Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "In your dot-log config (e.g. /config/autoload/log.global.php), locate every writer under dot_log->loggers->my_logger->writers and replace a dynamic stream value such as sprintf('%s/../../log/dk-%s.log', __DIR__, date('Y-m-d')) with a formatter string like __DIR__ . '/../../log/error-log-{Y}-{m}-{d}.log'." } }, + { "@type": "Question", "name": "What must I do after changing the stream configuration?", "acceptedAnswer": { "@type": "Answer", "text": "Clear the config cache. In a Dotkernel application, run php bin/clear-config-cache.php; in a non-Dotkernel setup, make sure you clear your application's config before usage." } } ] } ] 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 ba4bae23..ba147527 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "What's the correct line to enable a persistent connection?", "acceptedAnswer": { "@type": "Answer", "text": "Use database.params.persistent = TRUE instead." } } ] 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 efeefb82..615e3bdc 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 @@ -43,7 +43,7 @@ "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." } }, - { "@type": "Question", "name": "What's an example use of Alerts in DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "DotKernel uses Alerts to notify the developer when an email was not sent successfully, with the message kept in the dots.xml file under the alertMessages section." } }, + { "@type": "Question", "name": "What's an example use of Alerts in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel uses Alerts to notify the developer when an email was not sent successfully, with the message kept in the dots.xml file under the alertMessages section." } }, { "@type": "Question", "name": "How are the {VARIABLES} in an alert message replaced with real data?", "acceptedAnswer": { "@type": "Answer", "text": "A $details array is prepared (e.g. e_class, site_name, site_url, e_message, to_email, from_email, date_now), and the alert's setDetails() method replaces the {VARIABLES} placeholders in the subject and message with that data." } }, { "@type": "Question", "name": "What are the steps to build and send an alert?", "acceptedAnswer": { "@type": "Answer", "text": "Create a new Dot_Alert(), add headers such as From, Reply-To and X-Mailer, then call setTo(), setSubject() and setContent(), then setDetails() to fill in the placeholders, and finally call send()." } } ] 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 54f18b64..b995ca28 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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)." } }, - { "@type": "Question", "name": "What is the minimum PHP version required after this change?", "acceptedAnswer": { "@type": "Answer", "text": "The minimum PHP version required to run DotKernel was raised to PHP 5.3.8." } }, - { "@type": "Question", "name": "What steps are needed to apply this refactor to an older DotKernel system?", "acceptedAnswer": { "@type": "Answer", "text": "Change the password column definition in the admin and user tables via ALTER TABLE, remove the settings.admin.salt entry from application.ini, apply the provided patch, and run the conversion script described in Console/Controller.php at line 47." } }, + { "@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)." } }, + { "@type": "Question", "name": "What is the minimum PHP version required after this change?", "acceptedAnswer": { "@type": "Answer", "text": "The minimum PHP version required to run Dotkernel was raised to PHP 5.3.8." } }, + { "@type": "Question", "name": "What steps are needed to apply this refactor to an older Dotkernel system?", "acceptedAnswer": { "@type": "Answer", "text": "Change the password column definition in the admin and user tables via ALTER TABLE, remove the settings.admin.salt entry from application.ini, apply the provided patch, and run the conversion script described in Console/Controller.php at line 47." } }, { "@type": "Question", "name": "What happens to existing admin passwords during the upgrade?", "acceptedAnswer": { "@type": "Answer", "text": "Admin passwords cannot be converted automatically, so they need to be recreated manually." } } ] } 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 389bd588..036e0dd6 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "Is there anything else to replace besides wurfl.zip?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Download the web_browsers_patch.xml file and replace the /externals/wurfl/web_browsers_patch.xml file with the new one." } }, { "@type": "Question", "name": "What's the last step after replacing the files?", "acceptedAnswer": { "@type": "Answer", "text": "Go to the Admin panel, click on the \"empty\" wurfl cache link, then rebuild the cache." } } 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 cafb3028..53f9eea7 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 @@ -42,7 +42,7 @@ "@id": "{{ absolute_url(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." } } + { "@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/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 6e698b53..03d786d0 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "Where can I find instructions to set up the WURFL Cloud API key?", "acceptedAnswer": { "@type": "Answer", "text": "Instructions on how to sign up for a free account and set up your API key are linked in the article, pointing to the \"Detecting Mobile Devices in DotKernel 1.6\" article." } }, - { "@type": "Question", "name": "What are the terms of DotKernel's special WURFL Cloud license?", "acceptedAnswer": { "@type": "Answer", "text": "The license is non-transferable, conditioned, limited to the version received, and restricted to use and distribution only in connection with the Dotkernel software framework. It does not allow making derivative works, even when source code is provided or the code is not obfuscated." } } + { "@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." } }, + { "@type": "Question", "name": "Where can I find instructions to set up the WURFL Cloud API key?", "acceptedAnswer": { "@type": "Answer", "text": "Instructions on how to sign up for a free account and set up your API key are linked in the article, pointing to the \"Detecting Mobile Devices in Dotkernel 1.6\" article." } }, + { "@type": "Question", "name": "What are the terms of Dotkernel's special WURFL Cloud license?", "acceptedAnswer": { "@type": "Answer", "text": "The license is non-transferable, conditioned, limited to the version received, and restricted to use and distribution only in connection with the Dotkernel software framework. It does not allow making derivative works, even when source code is provided or the code is not obfuscated." } } ] } ] 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 0a6c952c..b886e249 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "What features does Twig bring to DotKernel3 templates?", "acceptedAnswer": { "@type": "Answer", "text": "Templates can now be written as HTML code with extra Twig tags, and Twig includes features such as layouts, loops, variables, and escaping, giving the familiarity of HTML with the overview and convenience of PHP." } }, - { "@type": "Question", "name": "Where can I read the official Twig templating documentation for DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "The official documentation is linked in the article at docs.dotkernel.com/Prerequisites/Templates." } } + { "@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." } }, + { "@type": "Question", "name": "What features does Twig bring to Dotkernel3 templates?", "acceptedAnswer": { "@type": "Answer", "text": "Templates can now be written as HTML code with extra Twig tags, and Twig includes features such as layouts, loops, variables, and escaping, giving the familiarity of HTML with the overview and convenience of PHP." } }, + { "@type": "Question", "name": "Where can I read the official Twig templating documentation for Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "The official documentation is linked in the article at docs.dotkernel.com/Prerequisites/Templates." } } ] } ] 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 c8d34275..71ae1cf0 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 @@ -41,12 +41,12 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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')." } }, { "@type": "Question", "name": "When can these Composer dependencies be used in the application?", "acceptedAnswer": { "@type": "Answer", "text": "These dependencies can be used anywhere after the Dot_Kernel::initialize() function has been called." } }, { "@type": "Question", "name": "How are non-namespaced (Zend Framework 1) classes loaded compared to namespaced (Zend Framework 2) classes?", "acceptedAnswer": { "@type": "Answer", "text": "Non-namespaced ZF1 classes are loaded PSR-0 style, meaning the class name looks like VendorName_PackageName_ClassName (e.g. Zend_Barcode). Namespaced ZF2 classes are loaded PSR-4 style, meaning the class name looks like \\VendorName\\PackageName\\ClassName (e.g. Zend\\Barcode\\Barcode)." } }, { "@type": "Question", "name": "Can the same code work for both namespaced and non-namespaced barcode dependencies?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. If you add \"use Zend\\Barcode\\Barcode as Zend_Barcode;\" as the first line, the ZF1-style example will work for both, and you can then reference the module as Zend\\Barcode\\Barcode, Barcode, or Zend_Barcode." } }, - { "@type": "Question", "name": "What DotKernel and PHP versions does this article apply to?", "acceptedAnswer": { "@type": "Answer", "text": "This article works for any DotKernel 1.x version if your server is running PHP greater than 5.4.0." } } + { "@type": "Question", "name": "What Dotkernel and PHP versions does this article apply to?", "acceptedAnswer": { "@type": "Answer", "text": "This article works for any Dotkernel 1.x version if your server is running PHP greater than 5.4.0." } } ] } ] 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 3dda6089..4a2b344b 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, { "@type": "Question", "name": "What is the difference between utf8_general_ci and utf8_bin collation?", "acceptedAnswer": { "@type": "Answer", "text": "utf8_bin compares strings by the binary value of each character, while utf8_general_ci compares strings using general language rules with case-insensitive comparisons. For example, A with umlaut equals A, O with umlaut equals O, and U with umlaut equals U evaluate as true under utf8_general_ci but not under utf8_bin." } }, { "@type": "Question", "name": "Does the collation choice affect PHP string functions too?", "acceptedAnswer": { "@type": "Answer", "text": "No. These collation differences only happen at the MySQL level, for instance in queries using the LIKE operator, and not at the PHP level, for instance in str_replace() calls." } } 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 7f30e5d4..b4dfb6da 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 @@ -41,8 +41,8 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "What line do I add to application.ini for the API key?", "acceptedAnswer": { "@type": "Answer", "text": "Add a line such as resources.useragent.wurflcloud.api_key = 000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, using your own API key." } }, { "@type": "Question", "name": "How can I test that mobile detection is working?", "acceptedAnswer": { "@type": "Answer", "text": "Change the user agent in your browser to a mobile device and access your project; you should be redirected to the mobile module." } } ] 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 4fa77c43..1297b4e5 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "What did DotKernel do in response to the license change?", "acceptedAnswer": { "@type": "Answer", "text": "DotKernel planned to remove WURFL PHP API version 1.3.0 from its codebase and reintegrate version 1.2.1, which was still GNU/GPL. It also intended to keep contributing to the free WURFL XML data, and considered forking the 1.2.1 library and renaming it to avoid trademark issues." } } + { "@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." } }, + { "@type": "Question", "name": "What did Dotkernel do in response to the license change?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel planned to remove WURFL PHP API version 1.3.0 from its codebase and reintegrate version 1.2.1, which was still GNU/GPL. It also intended to keep contributing to the free WURFL XML data, and considered forking the 1.2.1 library and renaming it to avoid trademark issues." } } ] } ] 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 48cccfa5..c91c58b5 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 @@ -41,8 +41,8 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "Which folders need to be created and made writable?", "acceptedAnswer": { "@type": "Answer", "text": "Two folders must be created and made writable by the web server: cache/wurfl/FILE_CACHE_PROVIDER and cache/wurfl/FILE_PERSISTENCE_PROVIDER." } }, { "@type": "Question", "name": "What needs to be added to application.ini?", "acceptedAnswer": { "@type": "Answer", "text": "Three lines need to be added: resources.useragent.wurflapi.wurfl_api_version = 1.1, resources.useragent.wurflapi.wurfl_lib_dir pointing to APPLICATION_PATH /library/Wurfl/, and resources.useragent.wurflapi.wurfl_config_file pointing to APPLICATION_PATH /configs/wurfl.xml." } }, { "@type": "Question", "name": "How do you access WURFL configuration in code?", "acceptedAnswer": { "@type": "Answer", "text": "Instantiate a Zend_Http_UserAgent with the useragent config, then call getDevice() on it. getDevice() returns all the relevant information about the current user agent." } } 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 9a26d2f1..0d9c1aea 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, - { "@type": "Question", "name": "What roles exist for ACL in DotKernel?", "acceptedAnswer": { "@type": "Answer", "text": "DotKernel defines 3 ACL roles (user types): guest, user, and admin. These roles and their permissions are configured in the configs/acl/role.xml file." } }, + { "@type": "Question", "name": "What roles exist for ACL in Dotkernel?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel defines 3 ACL roles (user types): guest, user, and admin. These roles and their permissions are configured in the configs/acl/role.xml file." } }, { "@type": "Question", "name": "Where do the ACL resources come from?", "acceptedAnswer": { "@type": "Answer", "text": "The resources for ACL are taken from configs/router.xml, specifically the controllers tag." } }, { "@type": "Question", "name": "What does the Dot_Acl class do?", "acceptedAnswer": { "@type": "Answer", "text": "Dot_Acl controls user access (Access Controller Layer), is used for setting and checking a user's permissions, and uses Zend_Acl to check whether a role has access to a resource. Dot_Auth calls the isAllowed method from Dot_Acl to authenticate the user." } } ] 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 55cb2043..1715c049 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "What command line arguments does the Console bootstrap support?", "acceptedAnswer": { "@type": "Answer", "text": "There are two arguments: -a, the name of the action to execute, and -e, the environment as defined in application.ini (development, staging, or production), which is optional and defaults to production." } }, { "@type": "Question", "name": "What happens to extra arguments passed to the script?", "acceptedAnswer": { "@type": "Answer", "text": "Any other arguments set when calling the script will be available in the controller in the registry's arguments array." } }, 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 55784d3c..2bb15502 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 @@ -42,7 +42,7 @@ "@id": "{{ absolute_url(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." } } + { "@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 2685508b..0284cd17 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "How do you retrieve just one variable from the registry?", "acceptedAnswer": { "@type": "Answer", "text": "If you only need one variable, you can get it directly using $action = Zend_Registry::get('requestAction');." } }, { "@type": "Question", "name": "What does the seo entry in the registry contain?", "acceptedAnswer": { "@type": "Answer", "text": "It contains seo information loaded from configs/dots/seo.xml, such as site name, default description, and keywords." } } 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 85a84972..aa95dc74 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 @@ -41,9 +41,9 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, - { "@type": "Question", "name": "What was the fix, and where was it released?", "acceptedAnswer": { "@type": "Answer", "text": "The regenerateID() call was removed, and two new application.ini settings were added: use_only_cookies, which must be ON at all times to avoid session fixation, and remember_me_seconds. These fixes were included in DotKernel version 1.5.1." } }, + { "@type": "Question", "name": "What was the fix, and where was it released?", "acceptedAnswer": { "@type": "Answer", "text": "The regenerateID() call was removed, and two new application.ini settings were added: use_only_cookies, which must be ON at all times to avoid session fixation, and remember_me_seconds. These fixes were included in Dotkernel version 1.5.1." } }, { "@type": "Question", "name": "What should I do if I still see this issue in IE8/IE9?", "acceptedAnswer": { "@type": "Answer", "text": "If you encounter the same issue in IE8 and IE9, the tip given is to deactivate the rememberMe() and regenerateId() method calls." } } ] } 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 6685d697..056df031 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 @@ -46,7 +46,7 @@ "name": "What is this file for?", "acceptedAnswer": { "@type": "Answer", - "text": "It is an XML file, downloadable from the linked page, that can be imported into Zend Studio (version 9.x) to set up the PHP code formatter so it follows DotKernel's coding standard." + "text": "It is an XML file, downloadable from the linked page, that can be imported into Zend Studio (version 9.x) to set up the PHP code formatter so it follows Dotkernel's coding standard." } }, { 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 594785ff..d4bcdc17 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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 b99e1452..92cc8ea6 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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/." } }, { "@type": "Question", "name": "What PHP version does Dotkernel Admin V4 support?", "acceptedAnswer": { "@type": "Answer", "text": "Full support for PHP 8.1, with a minimum requirement of PHP 7.4." } }, { "@type": "Question", "name": "How do you register a new module or middleware?", "acceptedAnswer": { "@type": "Answer", "text": "Register a module by adding its ConfigProvider.php in config.php. New middleware goes into pipeline.php, where you can also edit the order in which middleware runs." } }, 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 1497679d..93cca3a2 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 @@ -60,7 +60,7 @@ "name": "What update adds PHP 8.3 support to Dotkernel Frontend?", "acceptedAnswer": { "@type": "Answer", - "text": "The DotKernel team updated the Frontend application to version 4.2.0 so it can take advantage of PHP 8.3 support in the newest packages." + "text": "The Dotkernel team updated the Frontend application to version 4.2.0 so it can take advantage of PHP 8.3 support in the newest packages." } }, { 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 d7176b3d..0183f1c5 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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": "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." } }, { "@type": "Question", "name": "What data does the POST /admin request body need?", "acceptedAnswer": { "@type": "Answer", "text": "identity, password, passwordConfirm, and roles (one or more valid admin role UUIDs, obtainable via the protected GET /admin/role endpoint). firstname and lastname are optional." } }, { "@type": "Question", "name": "What role does an admin get when created via the terminal command?", "acceptedAnswer": { "@type": "Answer", "text": "The terminal command doesn't allow specifying an admin role, so newly created accounts are given the role of admin." } }, 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 2313c421..784c7b01 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 @@ -41,7 +41,7 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, { "@type": "Question", "name": "How do I create a new migration?", "acceptedAnswer": { "@type": "Answer", "text": "Run php dot make:migration , giving the migration a reasonable name so its action and the database's progression are easy to follow in the project tree." } }, { "@type": "Question", "name": "What's the difference between migrations and seeders?", "acceptedAnswer": { "@type": "Answer", "text": "Migrations manage the database layout/schema, while seeders add data to the database, such as adding a default admin profile on a fresh installation." } }, 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 31cc5356..f498b6f9 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 @@ -41,11 +41,11 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, - { "@type": "Question", "name": "What solution did DotKernel adopt?", "acceptedAnswer": { "@type": "Answer", "text": "DotKernel decided to discard the use of third-party packages licensed under LGPL v3. All of DotKernel's own packages are licensed under MIT, which has no restrictions on the source code other than keeping the license and copyright notice in a file within each package. Other non-restrictive licenses considered acceptable include Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0 and OSL-3.0." } }, + { "@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." } }, + { "@type": "Question", "name": "What solution did Dotkernel adopt?", "acceptedAnswer": { "@type": "Answer", "text": "Dotkernel decided to discard the use of third-party packages licensed under LGPL v3. All of Dotkernel's own packages are licensed under MIT, which has no restrictions on the source code other than keeping the license and copyright notice in a file within each package. Other non-restrictive licenses considered acceptable include Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0 and OSL-3.0." } }, { "@type": "Question", "name": "What changed in dot-user-agent-sniffer as a result?", "acceptedAnswer": { "@type": "Answer", "text": "Starting with version 3.4.0, the dotkernel/dot-user-agent-sniffer package must follow the LGPL v3 license. The admin application will not use the features from matomo/device-detector, but will contain instructions for developers who intend to add the package themselves." } }, - { "@type": "Question", "name": "Is it still risky to use an older version of dot-user-agent-sniffer?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Any application using dotkernel/dot-user-agent-sniffer with a version lower than 3.4.0 is still a legal liability. DotKernel will not include dot-user-agent-sniffer in any of its applications by default for now, while it looks into bringing back the device detector functionality under a less restrictive license in the future." } } + { "@type": "Question", "name": "Is it still risky to use an older version of dot-user-agent-sniffer?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Any application using dotkernel/dot-user-agent-sniffer with a version lower than 3.4.0 is still a legal liability. Dotkernel will not include dot-user-agent-sniffer in any of its applications by default for now, while it looks into bringing back the device detector functionality under a less restrictive license in the future." } } ] } ] 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 bd0789d6..30baf108 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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 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." } }, { "@type": "Question", "name": "How do you set up a virtual host for the project?", "acceptedAnswer": { "@type": "Answer", "text": "After Ubuntu is installed inside WSL2, you create a virtual host for your project by following the linked virtual-host creation guide." } }, - { "@type": "Question", "name": "How do you install DotKernel API once the virtual host is ready?", "acceptedAnswer": { "@type": "Answer", "text": "Using your terminal, move into the virtual host directory you created (for example, cd /home/your-username/projects/your-virtualhost), then install DotKernel API by following its guide. Afterward, make sure the data and log directories are writable by changing their permissions, as described in the linked permission-fix guide." } }, + { "@type": "Question", "name": "How do you install Dotkernel API once the virtual host is ready?", "acceptedAnswer": { "@type": "Answer", "text": "Using your terminal, move into the virtual host directory you created (for example, cd /home/your-username/projects/your-virtualhost), then install Dotkernel API by following its guide. Afterward, make sure the data and log directories are writable by changing their permissions, as described in the linked permission-fix guide." } }, { "@type": "Question", "name": "How do you get PHPStorm to work with the WSL2 project files?", "acceptedAnswer": { "@type": "Answer", "text": "You set up PHPStorm to work with WSL2 files by following the linked JetBrains article on using a WSL development environment in the product." } }, { "@type": "Question", "name": "Does this guide also work for AlmaLinux instead of Ubuntu?", "acceptedAnswer": { "@type": "Answer", "text": "There is a guide for AlmaLinux 8 as well, but it is not fully functional because of a well-known issue regarding running systemd inside WSL2." } } ] 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 edc5e3ac..4ce502b1 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 @@ -41,10 +41,10 @@ "@type": "FAQPage", "@id": "{{ absolute_url(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." } }, + { "@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." } }, { "@type": "Question", "name": "What plugin do you need to install in Aptana before connecting to Mantis?", "acceptedAnswer": { "@type": "Answer", "text": "You need to install the Mylyn plugin via Aptana -> Help -> Software Update, adding the update site http://download.eclipse.org/tools/mylyn/update/e3.4/, and then install the Mylyn Connector for Mantis." } }, - { "@type": "Question", "name": "What information is needed to add DotKernel Tracker as a task repository?", "acceptedAnswer": { "@type": "Answer", "text": "You need the server URL (http://www.dotkernel.net/api/soap/mantisconnect.php), a label of your choosing (e.g. \"DotKernel Tracker\"), and your User ID, which is your username from dotkernel.net (you can sign up if you don't already have an account)." } } + { "@type": "Question", "name": "What information is needed to add Dotkernel Tracker as a task repository?", "acceptedAnswer": { "@type": "Answer", "text": "You need the server URL (http://www.dotkernel.net/api/soap/mantisconnect.php), a label of your choosing (e.g. \"Dotkernel Tracker\"), and your User ID, which is your username from dotkernel.net (you can sign up if you don't already have an account)." } } ] } ] diff --git a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-1-0-0-released.html.twig b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-1-0-0-released.html.twig index ec0b889f..11acc3aa 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-1-0-0-released.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-1-0-0-released.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel-api/dotkernel-api-1-0-0-released.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel API 1.0.0 Released{% endblock %} +{% block title %}Dotkernel API 1.0.0 Released{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -23,9 +23,9 @@

Dotkernel API has come a long way since this post was created. Check out the newest version of Dotkernel API to stay up to date with the latest functional and security features.

-

DotKernel API 1.0.0 was just released!

+

Dotkernel API 1.0.0 was just released!

 

-

What is DotKernel API?

+

What is Dotkernel API?

It is a Zend Expressive 3 application aiming to help developers quickly and efficiently develop an API.

 

How does it work?

@@ -45,7 +45,7 @@

 

What does it offer?

-

Out-of-the-box, DotKernel API provides the following features:

+

Out-of-the-box, Dotkernel API provides the following features:

  • Secure authentication via OAuth2
  • Two user roles: admin and member
  • @@ -58,19 +58,19 @@
    - What is DotKernel API? + + What is Dotkernel API? +

    It is a Zend Expressive 3 application aiming to help developers quickly and efficiently develop an API.

    - What key libraries does DotKernel API 1.0.0 use? + + What key libraries does Dotkernel API 1.0.0 use? +

    Among others, it's built on the ezimuel/zend-expressive-api skeleton, and uses dotkernel/dot-annotated-services for dependency injection, dotkernel/dot-console for console applications, dotkernel/dot-errorhandler for error logging, dotkernel/dot-mail for SMTP email, zend-expressive-authentication-oauth2 for OAuth2 authentication, zend-expressive-authorization-rbac for role-based permissions, and swagger-api/swagger-ui for OpenAPI 3 documentation.

    - What features does DotKernel API 1.0.0 offer out of the box? + + What features does Dotkernel API 1.0.0 offer out of the box? +

    Secure authentication via OAuth2, two user roles (admin and member), where admins can manage any user account and members can manage only their own, plus OpenAPI 3 documentation with an interactive interface developers can use to integrate the API.

    diff --git a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-client-side-authorization.html.twig b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-client-side-authorization.html.twig index 23beec06..401769c1 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-client-side-authorization.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-client-side-authorization.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel-api/dotkernel-api-client-side-authorization.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel API Client Side Authorization{% endblock %} +{% block title %}Dotkernel API Client Side Authorization{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
    -This article covers the basic authorization of a Client application which use a backend built using DotKernel API +This article covers the basic authorization of a Client application which use a backend built using Dotkernel API

    Authorization Request

    Client application users send a POST request to the backend containing the following JSON object: diff --git a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-server-side-authorization.html.twig b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-server-side-authorization.html.twig index b6adfadd..64c6ddd5 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-server-side-authorization.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-server-side-authorization.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel-api/dotkernel-api-server-side-authorization.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel API Server Side Authorization{% endblock %} +{% block title %}Dotkernel API Server Side Authorization{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
    -This article covers the basic authorization of a Server Side application  built using DotKernel API +This article covers the basic authorization of a Server Side application  built using Dotkernel API

    Protecting an endpoint

    • no-auth: the resource can be accessed without the need of authentication/authorization
    • diff --git a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-versus-laminas-api-tools.html.twig b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-versus-laminas-api-tools.html.twig index 2c59b7a6..8c3a257c 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-versus-laminas-api-tools.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel-api/dotkernel-api-versus-laminas-api-tools.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel-api/dotkernel-api-versus-laminas-api-tools.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel API versus Laminas API Tools{% endblock %} +{% block title %}Dotkernel API versus Laminas API Tools{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -

      Below we have created an analysis of the basic features available in Laminas Api Tools and DotKernel API. It's intended to highlight the differences between the two and also to showcase why DotKernel API is a good alternative for Laminas API Tools, especially considering the latter's archived status.

      +

      Below we have created an analysis of the basic features available in Laminas Api Tools and Dotkernel API. It's intended to highlight the differences between the two and also to showcase why Dotkernel API is a good alternative for Laminas API Tools, especially considering the latter's archived status.

      The table below refers to Dotkernel API V7

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.html.twig b/src/Blog/templates/page/blog-resource/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.html.twig index 26dd02dc..a11ea650 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel-api/how-to-implement-mailchimp-in-dotkernel-api.jsonld.twig') }} {% endblock %} -{% block title %}How to implement MailChimp in DotKernel API{% endblock %} +{% block title %}How to implement MailChimp in Dotkernel API{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -

      This article will walk you through the process of implementing MailChimp into your instance of DotKernel API using drewm/mailchimp-api

      +

      This article will walk you through the process of implementing MailChimp into your instance of Dotkernel API using drewm/mailchimp-api

        Step 1: Add the library to your application using the following command: diff --git a/src/Blog/templates/page/blog-resource/dotkernel-api/openapi-implementation-in-dotkernel-api.html.twig b/src/Blog/templates/page/blog-resource/dotkernel-api/openapi-implementation-in-dotkernel-api.html.twig index c817a4e1..7bfdfb5a 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel-api/openapi-implementation-in-dotkernel-api.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel-api/openapi-implementation-in-dotkernel-api.html.twig @@ -61,11 +61,11 @@
    • Helps troubleshooting: It defines the correct functionality that helps developers and maintainers find and fix bugs more effectively.
    -

    OpenAPI in DotKernel API

    +

    OpenAPI in Dotkernel API

    -

    DotKernel API has full support for OpenAPI, from describing the endpoints and generating the documentation, to rendering and testing the endpoints.

    +

    Dotkernel API has full support for OpenAPI, from describing the endpoints and generating the documentation, to rendering and testing the endpoints.

    -

    Each module (Admin, App, User) in DotKernel API contains a file named OpenAPI.php. In this file you must document all of the endpoints from RoutesDelegator.php. The entries in OpenAPI.php have several descriptive items, the most important being method, request and response. These are used to generate a documentation file from the command line. The static documentation file is rendered using Swagger UI or Redoc in a user-friendly way. You can read more about this starting here and its subsequent pages.

    +

    Each module (Admin, App, User) in Dotkernel API contains a file named OpenAPI.php. In this file you must document all of the endpoints from RoutesDelegator.php. The entries in OpenAPI.php have several descriptive items, the most important being method, request and response. These are used to generate a documentation file from the command line. The static documentation file is rendered using Swagger UI or Redoc in a user-friendly way. You can read more about this starting here and its subsequent pages.

    Describing OpenAPI components

    @@ -84,7 +84,7 @@

    Read more details about the above here.

    -

    Once you have your basic components defined, you can begin work on the endpoints. The endpoints already made available in DotKernel API are documented, so you must do the same for the new endpoints you create in your project. This is done by defining these items:

    +

    Once you have your basic components defined, you can begin work on the endpoints. The endpoints already made available in Dotkernel API are documented, so you must do the same for the new endpoints you create in your project. This is done by defining these items:

    • the request object (Get, Post, Patch, Put, Delete)
    • diff --git a/src/Blog/templates/page/blog-resource/dotkernel/adding-a-cors-implementation-to-zend-expressive.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/adding-a-cors-implementation-to-zend-expressive.html.twig index 212f50af..c2f70467 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/adding-a-cors-implementation-to-zend-expressive.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/adding-a-cors-implementation-to-zend-expressive.html.twig @@ -20,7 +20,7 @@
      -

      This article is a guide on how to add a CORS implementation on an existing DotKernel3 project.

      +

      This article is a guide on how to add a CORS implementation on an existing Dotkernel3 project.

      The issue

      If you're facing this message:

      @@ -41,7 +41,7 @@

      Run the following command in your project:

      composer require tuupola/cors-middleware

      At the time writing this article the current package version is: 0.9.4.

      -

      Follow the next steps to get your Zend Expressive or DotKernel3 project CORS friendly.

      +

      Follow the next steps to get your Zend Expressive or Dotkernel3 project CORS friendly.

      Create the CORS config file

      Create a cors.global.php file in the config/autoload directory.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/adding-composer-support-in-your-dotkernel-project.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/adding-composer-support-in-your-dotkernel-project.html.twig index e2d830b3..0f5f5a41 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/adding-composer-support-in-your-dotkernel-project.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/adding-composer-support-in-your-dotkernel-project.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/adding-composer-support-in-your-dotkernel-project.jsonld.twig') }} {% endblock %} -{% block title %}Adding Composer support in your DotKernel project{% endblock %} +{% block title %}Adding Composer support in your Dotkernel project{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -22,13 +22,13 @@
      Composer is an application-level package manager. Composer auto-loads the dependencies on demand and can also auto-load custom classes . -This article will cover the needed steps to add composer support to your DotKernel project or even "composify" it. +This article will cover the needed steps to add composer support to your Dotkernel project or even "composify" it. -Assuming that you know how to use composer (if not you should consider reading this article) we wil move on to your DotKernel project "composification". +Assuming that you know how to use composer (if not you should consider reading this article) we wil move on to your Dotkernel project "composification".  

      First things first

      -The DotKernel project must have a composer.json file so that composer can work. +The Dotkernel project must have a composer.json file so that composer can work. Our composer.json file should look like this:
      >{
      @@ -54,7 +54,7 @@ The dependencies provided in the require section are also loade
       
        
       
      -In order to have these components instaled you must run the following command in your DotKernel root path
      +In order to have these components instaled you must run the following command in your Dotkernel root path
       
      >composer update
      If the vendor folder is present composer will check for updates, and update the packages as needed. @@ -63,7 +63,7 @@ If the vendor folder does not exist composer will create a vendor folde Composer will create an autoload file, which will be use to load our dependencies/packages.   -

      Adding Composer Support to DotKernel

      +

      Adding Composer Support to Dotkernel

      The autoload file created by composer will be used to load our packages.
      >$composerAutoLoaderPath = realpath(APPLICATION_PATH.'/vendor/autoload.php');
       require_once($composerAutoLoaderPath);
      @@ -90,9 +90,9 @@ Later on, the packages can be used like this: $myDependency = new MyDependency($neededArguments); $myDependency->doSomething();
      -Learn more about how to use dependencies in DotKernel 1.x by reading this article. +Learn more about how to use dependencies in Dotkernel 1.x by reading this article. -This article works for any DotKernel 1.x version if your server is running PHP >5.4.0. +This article works for any Dotkernel 1.x version if your server is running PHP >5.4.0.

      Frequently Asked Questions

      @@ -104,7 +104,7 @@ This article works for any DotKernel 1.x version if your server
    - What must a DotKernel project have before Composer can be used? + + What must a Dotkernel project have before Composer can be used? +

    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.

    @@ -122,9 +122,9 @@ This article works for any DotKernel 1.x version if your server
    - Which DotKernel versions does this apply to? + + Which Dotkernel versions does this apply to? +
    -

    The article states it works for any DotKernel 1.x version, as long as the server is running PHP greater than 5.4.0.

    +

    The article states it works for any Dotkernel 1.x version, as long as the server is running PHP greater than 5.4.0.

    diff --git a/src/Blog/templates/page/blog-resource/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.html.twig index 34374f69..c62a2258 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.jsonld.twig') }} {% endblock %} -{% block title %}Adding Windows 10 OS and Browser detection in DotKernel projects{% endblock %} +{% block title %}Adding Windows 10 OS and Browser detection in Dotkernel projects{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -35,7 +35,7 @@ In this article we will have the icon upgrade guide.
  • Extract the archive in a folder, let's name it icons_patch
  • We recommend creating a backup of your project before you continue
  • -
  • Now copy all the files in the icons_patch folder in your DotKernel
  • +
  • Now copy all the files in the icons_patch folder in your Dotkernel
  • You will be prompted to replace 2 files, simply replace the files and agree to merge the folders content (files will be added, not replaced this time)
  • You need to clear the cache for changes to take effect, the os and browser xml's are cached. For more information read this article (look for Browser & OS)
  • You can now delete the icons_patch folder or use it to patch another project
  • @@ -53,7 +53,7 @@ A /images/os/windows_metro.png
    - What DotKernel version is required before applying this patch? + + What Dotkernel version is required before applying this patch? +

    Your project must be running version 1.5.0 or newer.

    diff --git a/src/Blog/templates/page/blog-resource/dotkernel/caching-in-dotkernel-using-zend-framework.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/caching-in-dotkernel-using-zend-framework.html.twig index fece5c85..ab97d361 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/caching-in-dotkernel-using-zend-framework.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/caching-in-dotkernel-using-zend-framework.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/caching-in-dotkernel-using-zend-framework.jsonld.twig') }} {% endblock %} -{% block title %}Caching in DotKernel using Zend Framework{% endblock %} +{% block title %}Caching in Dotkernel using Zend Framework{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -25,7 +25,7 @@ It's very expensive to load configurations and settings from XML files, on every First because of latency of accessing files from hard drive, second because of the XML file parsing burden. -Because of that , we implemented in upcoming 1.8 version of DotKernel a cache layer where to store router, acl_role, menu, options(including seo_xml), browser_xml, os_xml, test between requests. More information about the variables which DotKernel cache by default follow this link: DotKernel Reserved Variable Names for Caching +Because of that , we implemented in upcoming 1.8 version of Dotkernel a cache layer where to store router, acl_role, menu, options(including seo_xml), browser_xml, os_xml, test between requests. More information about the variables which Dotkernel cache by default follow this link: Dotkernel Reserved Variable Names for Caching @@ -33,7 +33,7 @@ We are implementing 2 different cache factories to choose from: apc1. Configuring the cache The configuration can be set from /configs/application.ini, you can choose if you use the caching system, how long your cache stays valid, the cache namespace, and the storage provider (File or APC). I would disable the cache in development mode if I were you. -For more info about the configuration and help configuring the cache see: Configuring the Cache in DotKernel. +For more info about the configuration and help configuring the cache see: Configuring the Cache in Dotkernel.

    2. Using the Cache

    The cache is automatically loaded in the initialization and stored in the Registry. @@ -67,7 +67,7 @@ else
    - What data does DotKernel's cache layer store? + + What data does Dotkernel's cache layer store? +

    Router, acl_role, menu, options (including seo_xml), browser_xml, os_xml, and test data between requests.

    diff --git a/src/Blog/templates/page/blog-resource/dotkernel/configuring-the-cache-in-dotkernel.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/configuring-the-cache-in-dotkernel.html.twig index 9773a8d6..fead19ab 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/configuring-the-cache-in-dotkernel.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/configuring-the-cache-in-dotkernel.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/configuring-the-cache-in-dotkernel.jsonld.twig') }} {% endblock %} -{% block title %}Configuring the Cache in DotKernel{% endblock %} +{% block title %}Configuring the Cache in Dotkernel{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
    -This article contains the DotKernel cache layer configuration guide. +This article contains the Dotkernel cache layer configuration guide. -The DotKernel Caching Layer is based on Zend Framework Cache, more configuration options can be found at the following links: +The Dotkernel Caching Layer is based on Zend Framework Cache, more configuration options can be found at the following links:
    • Zend Framework Cache Frontends
    • Zend Framework Cache Backends
    • @@ -53,13 +53,13 @@ For more settings and caching alternatives see the Zend Framework Cache Links at The setting pattern and sample are below:
      >cache.BACKEND_NAME.SETTING = "VALUE"
       ; example:
      -cache.file.file_name_prefix = "DotKernel"
      +cache.file.file_name_prefix = "Dotkernel"

      Frequently Asked Questions

      - What is DotKernel's caching layer based on? + + What is Dotkernel's caching layer based on? +

      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.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.html.twig index 2f4c280c..89b5daee 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dependency-injection-made-easy-in-laminas-mezzio-applications.html.twig @@ -25,11 +25,11 @@

      So, first thing first, the problem.

      You have a Laminas / Mezzio application with a bunch of services that you need to use in a, let's say, controller class or in any other class, and you are tired of building, updating, and maintaining factories every time you add a new dependency to your class.

      -

      DotKernel has you covered. We built a tool to autowire those dependencies in your class. There is no need for factories for every class you make. Just use one “factory” class that you tie to your custom class in the config, and that's it.

      +

      Dotkernel has you covered. We built a tool to autowire those dependencies in your class. There is no need for factories for every class you make. Just use one “factory” class that you tie to your custom class in the config, and that's it.

      Sounds easy, right? Let’s finish with the chat and speak some code, first showing the problem and then the solution.

      -

      The examples below are from the DotKernel API framework, but the pattern applies to all laminas and mezzio applications and to all PSR-11 applications.

      +

      The examples below are from the Dotkernel API framework, but the pattern applies to all laminas and mezzio applications and to all PSR-11 applications.

      class UserHandler implements RequestHandlerInterface
      @@ -89,7 +89,7 @@
       
       

      Now consider that we need to build the factory for this and update it when we add a new dependency, and so on. Also to build the logic in the factory to handle any dependencies missing from the container. Painful right?

      -

      Now let's use DotKernel's dot-dependency-injection package to inject the required dependency into your class.

      +

      Now let's use Dotkernel's dot-dependency-injection package to inject the required dependency into your class.

      After you install the package, your class needs to use Dot\DependencyInjection\Attribute\Inject , then you need to add the #[Inject(...)] attribute to the constructor definition to specify which dependencies should be injected.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.html.twig index cfaade69..bdafdf76 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/detecting-mobile-devices-in-dotkernel-1-6-0.jsonld.twig') }} {% endblock %} -{% block title %}Detecting Mobile Devices in DotKernel 1.6.0{% endblock %} +{% block title %}Detecting Mobile Devices in Dotkernel 1.6.0{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
      -The new DotKernel version 1.6.0 is comming with some changes how we are detecting mobile devices, this changes are because of the new Wurfl Cloud integration. +The new Dotkernel version 1.6.0 is comming with some changes how we are detecting mobile devices, this changes are because of the new Wurfl Cloud integration. -This version of DotKernel is not comming anymore with a working built in method for mobile detection, so first we have to configure it. +This version of Dotkernel is not comming anymore with a working built in method for mobile detection, so first we have to configure it.
        @@ -50,11 +50,11 @@ resources.useragent.wurflcloud.lib_dir = APPLICATION_PATH "/library/WurflCloud/" cache_lifetime - time in seconds to keep the results in cache (default: 3600) cache_namespace - the prefix used for cache keys (default: WURFLCLOUD) api_key - API Key from WURFL Cloud account (change this with your key) -lib_dir - the wurfl cloud library location in DotKernel (don't change this, just if you want to move the library) +lib_dir - the wurfl cloud library location in Dotkernel (don't change this, just if you want to move the library) Because of these changes we removed the old Dot_UserAgent_Wurfl class and added the new one Dot_UserAgent_WurflCloud wich is using the Wurfl Cloud API adapter. -

        Example of Dot_UserAgent usage in DotKernel:

        +

        Example of Dot_UserAgent usage in Dotkernel:

        Get Wurfl configuration
        >$wurflConf = $registry->configuration->resources->useragent->wurflcloud;
        @@ -97,7 +97,7 @@ If detected device is an mobile device we will save device info in database and
        - Why did mobile detection change in DotKernel 1.6.0? + + Why did mobile detection change in Dotkernel 1.6.0? +

        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.

        @@ -111,7 +111,7 @@ If detected device is an mobile device we will save device info in database and
        Why choose the device_os and mobile_browser capabilities specifically? +
        -

        With these two capabilities, DotKernel's built-in methods can also derive extra capabilities such as isMobile, isSmartPhone, isIphone, isAndroid, isBlackberry, isSymbian, and isWindowsMobile. Choosing other capabilities from scientiamobile results in wrong detection of these extra capabilities.

        +

        With these two capabilities, Dotkernel's built-in methods can also derive extra capabilities such as isMobile, isSmartPhone, isIphone, isAndroid, isBlackberry, isSymbian, and isWindowsMobile. Choosing other capabilities from scientiamobile results in wrong detection of these extra capabilities.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/disable-wurfl-redirect-for-mobile-browsers.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/disable-wurfl-redirect-for-mobile-browsers.html.twig index 045590d7..d00d96ba 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/disable-wurfl-redirect-for-mobile-browsers.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/disable-wurfl-redirect-for-mobile-browsers.html.twig @@ -20,7 +20,7 @@
        -DotKernel has an example mobile site at http://v1.dotkernel.net/mobile that uses jQuery Mobile. +Dotkernel has an example mobile site at http://v1.dotkernel.net/mobile that uses jQuery Mobile. Wurfl is also used to detect mobile browsers (as discussed in a previous blog post) and automatically redirect them to the mobile site the first time they view the homepage. Sometimes, this behavior isn't desired (for example when you don't have a mobile site, or you don't plan on using Wurfl at all) @@ -35,7 +35,7 @@ if($config->resources->useragent->wurflapi->redirect && 'mobile' == Dot_Kernel::
        - How do you disable the automatic mobile redirect in DotKernel? + + How do you disable the automatic mobile redirect in Dotkernel? +

        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.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.html.twig index 0ba3e618..79a39ca3 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/disambiguation-dotkernel-1-and-dotkernel-3.jsonld.twig') }} {% endblock %} -{% block title %}Disambiguation: DotKernel 1 and DotKernel 3{% endblock %} +{% block title %}Disambiguation: Dotkernel 1 and Dotkernel 3{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,15 +20,15 @@
        -

        What is DotKernel?

        -The name DotKernel symbiotically  combines the string  Dot, as a +

        What is Dotkernel?

        +The name Dotkernel symbiotically  combines the string  Dot, as a representation of the Internet, and Kernel, the quintessence of any IT application. In other words Dotkernel wishes to be, with modesty, the central part of the Internet development and hence ensuring increased development productivity and run-time performance. -

        What is DotKernel 1?

        -DotKernel 1 is an PHP Application Framework, built on top of Zend Framework 1 (ZF1). +

        What is Dotkernel 1?

        +Dotkernel 1 is an PHP Application Framework, built on top of Zend Framework 1 (ZF1). It has the first public release  on July 2010. @@ -36,31 +36,31 @@ It is tight coupled with Zend Framework 1 , and add a set of cu external features (such as Router, Template Engine, etc.). It is composed of Zend Framework 1 and a set of custom or external features (such as Router, Template Engine, etc.). -DotKernel 1 architecture is based on MVC. +Dotkernel 1 architecture is based on MVC. Latest version is 1.8 Long Term Support. Will no be released a new version anymore, only bugfixes. -

        What is DotKernel 3?

        +

        What is Dotkernel 3?

        A collection of PSR-7 Middleware applications built on top of Zend Expressive microframework. It is composed of a set of custom and extended Zend Framework 3 components. -DotKernel 3 architecture is based on Middleware. +Dotkernel 3 architecture is based on Middleware. -DotKernel implements the following PSR's: PSR-1, PSR-2, PSR-4, PSR-7, PSR-11. +Dotkernel implements the following PSR's: PSR-1, PSR-2, PSR-4, PSR-7, PSR-11. Currently there are 2 applications: Frontend, Admin and a 3rd one is under development: API -

        DotKernel = DotKernel 1 or DotKernel 3?

        -In posts older than 2017 DotKernel 1 was referred as DotKernel because it was the only DotKernel version. +

        Dotkernel = Dotkernel 1 or Dotkernel 3?

        +In posts older than 2017 Dotkernel 1 was referred as Dotkernel because it was the only Dotkernel version. -Since the release of DotKernel 3, is reffered to as DotKernel 3 or DotKernel. +Since the release of Dotkernel 3, is reffered to as Dotkernel 3 or Dotkernel. -All future references to DotKernel 1 will be explicitly made. -

        As of DotKernel 3 release:

        -DotKernel 1 = Dot Kernel 1 +All future references to Dotkernel 1 will be explicitly made. +

        As of Dotkernel 3 release:

        +Dotkernel 1 = Dot Kernel 1 -DotKernel 3 = DotKernel 3 -

        DotKernel = DotKernel 3

        +Dotkernel 3 = Dotkernel 3 +

        Dotkernel = Dotkernel 3

            @@ -70,33 +70,33 @@ DotKernel 3 = DotKernel 3
        - What does the name "DotKernel" mean? + + What does the name "Dotkernel" mean? +

        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.

        - What is DotKernel 1? + + What is Dotkernel 1? +

        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.

        - What is DotKernel 3? + + What is Dotkernel 3? +

        A collection of PSR-7 Middleware applications built on top of the Zend Expressive microframework, composed of a set of custom and extended Zend Framework 3 components, with an architecture based on Middleware. It implements PSR-1, PSR-2, PSR-4, PSR-7, and PSR-11.

        - How many applications make up DotKernel 3? + + How many applications make up Dotkernel 3? +

        At the time of the article, there were two available applications, Frontend and Admin, with a third one, API, under development.

        - When someone writes just "DotKernel", which version is meant? + + When someone writes just "Dotkernel", which version is meant? +
        -

        In posts older than 2017, "DotKernel" referred to DotKernel 1, since it was the only version. Since the release of DotKernel 3, "DotKernel" refers to DotKernel 3, and all future references to DotKernel 1 are made explicitly.

        +

        In posts older than 2017, "Dotkernel" referred to Dotkernel 1, since it was the only version. Since the release of Dotkernel 3, "Dotkernel" refers to Dotkernel 3, and all future references to Dotkernel 1 are made explicitly.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/doctrine-cache-using-symfony-cache.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/doctrine-cache-using-symfony-cache.html.twig index 442a23d0..411d138c 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/doctrine-cache-using-symfony-cache.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/doctrine-cache-using-symfony-cache.html.twig @@ -33,7 +33,7 @@

        -

        In this article our focus will be on enabling the dot-cache component and effectively implementing caching in DotKernel Admin.

        +

        In this article our focus will be on enabling the dot-cache component and effectively implementing caching in Dotkernel Admin.

        Installation

        Run the following command in your project directory:

        composer require dotkernel/dot-cache

        After installing, add the DotCacheConfigProvider::class class to your configuration aggregate (config/config.php).

        Before we continue with the configuration process we need to know a few things about how and where the data is stored.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.html.twig index c6f9ade0..8077c4c7 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotboost-technologies-products-and-services-north-american-relaunch.html.twig @@ -24,7 +24,7 @@ Dotboost is pleased to announce our North American Relaunch. This new phase comes as a result of dedicated research and analysis on how to best serve clients in Canada and the US. -At the heart of our relaunch is the source release for our exclusive inhouse developed DotKernel framework. We have also added business IT integration and increased the clarity to our existing consulting services. +At the heart of our relaunch is the source release for our exclusive inhouse developed Dotkernel framework. We have also added business IT integration and increased the clarity to our existing consulting services. We're not your average IT organization; we view our customers as strategic partners. This paradigm allows us to take a comprehensive approach towards creating solutions and gain the competitive advantage. @@ -37,7 +37,7 @@ Founded in 2005, the Dotboost process can incorporate anywhere into your project
        What is at the heart of Dotboost's North American relaunch? +
        -

        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.

        +

        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.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-0-release.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-0-release.html.twig index 4934289d..630e7d96 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-0-release.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-0-release.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-2-0-release.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.2.0 release{% endblock %} +{% block title %}Dotkernel 1.2.0 release{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
        -Finally we reached DotKernel 1.2.0 milestone. +Finally we reached Dotkernel 1.2.0 milestone. Since the previous released 1.1.2, some changes have been made. @@ -28,16 +28,16 @@ Since the previous released 1.1.2, some changes have been made.
      • On database, we changed the names and structure of tables to respect database naming convention. http://www.dotkernel.com/dotkernel/dotkernel-database-naming-conventions-for-mysql/
        -
      • A new word came into our DotKernel discussions: dots. We use this term when talking about a submodule and all its component files. For example, “user” is a submodule of frontend module. Note that one dots can be part of multiple modules. (For example, “user” dots belong to frontend and admin module). For each dots, the configurations values have been added to xml files which are stored in configs/dots folder. In the preview versions, this values where hard-coded in the php files.
      • +
      • A new word came into our Dotkernel discussions: dots. We use this term when talking about a submodule and all its component files. For example, “user” is a submodule of frontend module. Note that one dots can be part of multiple modules. (For example, “user” dots belong to frontend and admin module). For each dots, the configurations values have been added to xml files which are stored in configs/dots folder. In the preview versions, this values where hard-coded in the php files.
      • Another change made in configs folder is resource.xml, which contains the configuration values for the controllers of each module.
      -To be easier to start an application from DotKernel, in admin module, there are now the following dots:  admin, user and system. +To be easier to start an application from Dotkernel, in admin module, there are now the following dots:  admin, user and system. New library classes have been implemented: Dot_Geoip and Dot_Seo, and some of the existing ones have been updated: Dot_Curl and Dot_Session (each module has his own session). -In DotKernel, all SQL queries are written as prepared statements.  We strongly encourage this  practice: http://www.dotkernel.com/php-development/protection-against-sql-injection-using-pdo-and-zend-framework/ +In Dotkernel, all SQL queries are written as prepared statements.  We strongly encourage this  practice: http://www.dotkernel.com/php-development/protection-against-sql-injection-using-pdo-and-zend-framework/ For more details, see  ChangeLog 1.2.0 @@ -48,7 +48,7 @@ For more details, see 
      - What is a "dots" in DotKernel, a term introduced in this release? + + What is a "dots" in Dotkernel, a term introduced in this release? +

      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.

      @@ -62,7 +62,7 @@ For more details, see 
      What dots does the admin module include by default? +
      -

      admin, user, and system, to make it easier to start an application from DotKernel.

      +

      admin, user, and system, to make it easier to start an application from Dotkernel.

      @@ -72,7 +72,7 @@ For more details, see 
      - How are SQL queries written in DotKernel? + + How are SQL queries written in Dotkernel? +

      All SQL queries are written as prepared statements, a practice the article strongly encourages.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-2-release.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-2-release.html.twig index 84e48c69..809ab085 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-2-release.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-2-2-release.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-2-2-release.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.2.2 release{% endblock %} +{% block title %}Dotkernel 1.2.2 release{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -Yesterday, we released DotKernel 1.2.2. It contains some bug fixes: +Yesterday, we released Dotkernel 1.2.2. It contains some bug fixes:
      • 31 – captcha errors try catch
      • 32 – pagination issue
      • @@ -31,17 +31,17 @@ Yesterday, we released DotKernel 1.2.2. It contains some bug fi For more details see ChangeLog 1.2.2. To get only the changed files from 1.2.1 to 1.2.2, download the upgrade file -Note*: because of the Bug 35, all php files have changed. To see what else has changed, check the DotKernel Tracker or the DotKernel WebSVN . +Note*: because of the Bug 35, all php files have changed. To see what else has changed, check the Dotkernel Tracker or the Dotkernel WebSVN . -P.S. On July 22, 2010 we released DotKernel 1.2.1. You can check the ChangeLog 1.2.1 or download the upgrade 1.2.1 zip file. +P.S. On July 22, 2010 we released Dotkernel 1.2.1. You can check the ChangeLog 1.2.1 or download the upgrade 1.2.1 zip file.

        Frequently Asked Questions

        - What does the DotKernel 1.2.2 release include? + + What does the Dotkernel 1.2.2 release include? +
        -

        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.

        +

        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.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-0-release.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-0-release.html.twig index ffb029ad..72014e5b 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-0-release.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-0-release.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-3-0-release.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.3.0 release{% endblock %} +{% block title %}Dotkernel 1.3.0 release{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
        -DotKernel 1.3.0 is released at last. It contains important changes and new features. +Dotkernel 1.3.0 is released at last. It contains important changes and new features. - 64: [Feature] Skin switcher in admin - closed. @@ -39,7 +39,7 @@ To protect a link that is accessible by members only, add this line in the contr - 63: [Bugs] Scan results Oct 1, 2010 on 1.3.0 RC - closed. - 69: [Bugs] reorganization of XMl files - closed. -Some xml files from configs folder have been changed to encompass the current needs of DotKernel. resource.xml has been deleted and its content split between route.xml and dots.xml. Check the manual to find more about route.xml and dots.xml +Some xml files from configs folder have been changed to encompass the current needs of Dotkernel. resource.xml has been deleted and its content split between route.xml and dots.xml. Check the manual to find more about route.xml and dots.xml - 67: [Bugs] Security Issue / test controller - closed. - 68: [Bugs] The canonical URL isn't escaped - closed. @@ -56,13 +56,13 @@ Some xml files from configs folder have been changed to encompass the current ne For more details see ChangeLog 1.3.0. -Note*: because of the bug 69, this release is not compatible with the previous versions. To see what else has changed, check DotKernel Tracker or DotKernel WebSVN. +Note*: because of the bug 69, this release is not compatible with the previous versions. To see what else has changed, check Dotkernel Tracker or Dotkernel WebSVN.

        Frequently Asked Questions

        - What is new in the admin interface in DotKernel 1.3.0? + + What is new in the admin interface in Dotkernel 1.3.0? +

        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.

        @@ -80,7 +80,7 @@ For more details see ChangeLog 1.3.0.
        - Is DotKernel 1.3.0 backward compatible with earlier versions? + + Is Dotkernel 1.3.0 backward compatible with earlier versions? +

        No. Because of the XML file reorganization (bug 69), 1.3.0 is not compatible with previous versions.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-2-release.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-2-release.html.twig index 41bb5d9e..2fd491fc 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-2-release.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-3-2-release.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-3-2-release.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.3.2 release{% endblock %} +{% block title %}Dotkernel 1.3.2 release{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
        -Before the winter holiday we came with a new release: DotKernel 1.3.2 +Before the winter holiday we came with a new release: Dotkernel 1.3.2 It contains many bug fixes, some refactoring and a few minor features. Bugs fixes: @@ -42,14 +42,14 @@ Minor features: Refactoring:
        • 0000110: [REFACTOR] Zend_Paginator
        • -
        • 0000107: [REFACTOR] Add a dojo dijit theme to DotKernel
        • +
        • 0000107: [REFACTOR] Add a dojo dijit theme to Dotkernel

        Frequently Asked Questions

        - What kind of release is DotKernel 1.3.2? + + What kind of release is Dotkernel 1.3.2? +

        It's mainly a maintenance release, containing many bug fixes, some refactoring, and a few minor features.

        @@ -63,7 +63,7 @@ Refactoring:
        What minor features and refactoring were included? +
        -

        Minor features include a refactor of validIP in Dot_Kernel and showing the WURFL date and API version in admin. Refactoring covered Zend_Paginator and added a dojo dijit theme to DotKernel.

        +

        Minor features include a refactor of validIP in Dot_Kernel and showing the WURFL date and API version in admin. Refactoring covered Zend_Paginator and added a dojo dijit theme to Dotkernel.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-5-0-released.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-5-0-released.html.twig index b314c9aa..7cf353c5 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-5-0-released.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-5-0-released.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-5-0-released.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.5.0 Released{% endblock %} +{% block title %}Dotkernel 1.5.0 Released{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,13 +20,13 @@
        -After a longer wait than usual, DotKernel 1.5.0 was just released. Due to the large amount of changes and the long time spent in development, we chose to skip 1.4 and go straight to 1.5.0. +After a longer wait than usual, Dotkernel 1.5.0 was just released. Due to the large amount of changes and the long time spent in development, we chose to skip 1.4 and go straight to 1.5.0. -Here are a few of the many changes to DotKernel in the latest release: +Here are a few of the many changes to Dotkernel in the latest release:

        Highlights of 1.5.0

        Switched from Dojo to jQuery

        -Starting with 1.5.0 we've switched from using Dojo to jQuery. This doesn't mean you can't still use Dojo in your own projects, but only jQuery will be used and maintained in the DotKernel distribution. +Starting with 1.5.0 we've switched from using Dojo to jQuery. This doesn't mean you can't still use Dojo in your own projects, but only jQuery will be used and maintained in the Dotkernel distribution.

        New designs

        We've redesigned the admin site, with new themes, and a dropdown menu, as well as a new and simpler design for the front-end.

        Model inheritance

        @@ -36,11 +36,11 @@ To prevent this, we've introduced a Dot_Model class, and a way to defin

        Dashed controllers

        We've changed the way the controller name is parsed, so that you can have controller with multiple words, split with dashes, without breaking the coding standard (for example, www.example.com/search-article will call SearchArticleController.php)

        Zend Registry reorganization

        -We've changed the structure of the registry, for more about this, please check this blog post. +We've changed the structure of the registry, for more about this, please check this blog post.   -There have been about 250 commits in our SVN repository since the latest release, so we can't cover all changes in this blog post. Please download DotKernel 1.5.0 try it out yourself and tell us what you think. +There have been about 250 commits in our SVN repository since the latest release, so we can't cover all changes in this blog post. Please download Dotkernel 1.5.0 try it out yourself and tell us what you think.   @@ -48,15 +48,15 @@ There have been about 250 commits in our SVN repository since the latest release
        - Why did DotKernel jump from 1.3 straight to 1.5.0? + + Why did Dotkernel jump from 1.3 straight to 1.5.0? +

        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.

        - Did DotKernel switch from Dojo to jQuery in 1.5.0? + + Did Dotkernel switch from Dojo to jQuery in 1.5.0? +
        -

        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.

        +

        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.

        @@ -74,7 +74,7 @@ There have been about 250 commits in our SVN repository since the latest release
        How much changed in the 1.5.0 release? +
        -

        About 250 commits went into the SVN repository since the previous release, so the blog post only covers the highlights - the full DotKernel 1.5.0 download is available to try out.

        +

        About 250 commits went into the SVN repository since the previous release, so the blog post only covers the highlights - the full Dotkernel 1.5.0 download is available to try out.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-0-lts-released.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-0-lts-released.html.twig index c003c31c..a0772ac4 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-0-lts-released.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-0-lts-released.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-8-0-lts-released.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.8.0 LTS Released{% endblock %} +{% block title %}Dotkernel 1.8.0 LTS Released{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,35 +20,35 @@
        -DotKernel 1.8.0 (LTS) was just released. +Dotkernel 1.8.0 (LTS) was just released.

        What is LTS?

        Long-term support (LTS) is a type of special versions or editions of software designed to be supported for a longer than normal period. It is particularly applicable to open-source software projects. It contains many bug fixes, some refactoring and a few minor features. Find more details read this article.   -Here are a few of the many changes to DotKernel in the latest release: +Here are a few of the many changes to Dotkernel in the latest release:

        Highlights of 1.8.0 (LTS)

         

        Plugin Architecture

        -Starting with 1.8.0 we will start using Plugins to make the DotKernel extending easier. We'll keep you up to date about how you create and use a plugin. +Starting with 1.8.0 we will start using Plugins to make the Dotkernel extending easier. We'll keep you up to date about how you create and use a plugin.

        New design

        We've redesigned the admin module and the frontend module is now mobile-friendly, but you can still use the mobile module.

        Loads Faster

        -The DotKernel framework just got a big boost because it supports APC & File Caching within the framework, all the XML's and config files are cached in order to maximize response speed for more information about caching and how to cache your data see this article. +The Dotkernel framework just got a big boost because it supports APC & File Caching within the framework, all the XML's and config files are cached in order to maximize response speed for more information about caching and how to cache your data see this article.

        Easier Request Handling

        We've added a new class, Dot_Request, which lets you have control over the request data before you use it, for example the variables $_SERVER, $_GET and $_POST are only used within controllers.

        Features added

        • API with Rate Limit - we've added a simple API with a single key authentification and a simple implementation of a rate limit (see /configs/application.ini - section params.api)
        • -
        • Cache System - Built on the Zend_Cache backends, provides caching within DotKernel, but also in library, more details about this and how it works can be found here.
        • +
        • Cache System - Built on the Zend_Cache backends, provides caching within Dotkernel, but also in library, more details about this and how it works can be found here.

        Other changes

          -
        • Removed WURFL integration, DotKernel can detect wether you use a mobile device separately now, the WURFL Library can be added as a Plugin from now on
        • +
        • Removed WURFL integration, Dotkernel can detect wether you use a mobile device separately now, the WURFL Library can be added as a Plugin from now on
        • Removed multiple SMTP Transporter, it can be added as a plugin
        • -
        • Security scan in Admin Dashboard - you can now see which are the recommended settings (especially security related) for DotKernel to work at it's best
        • +
        • Security scan in Admin Dashboard - you can now see which are the recommended settings (especially security related) for Dotkernel to work at it's best
        • Admin fail logins are no longer sent to the first admin, they are sent to all developers found in devEmails within settings table in the database
        • Alert System - Alerts can be sent to all the developers to notify them if something goes wrong, for more information about alerts read this article.
        @@ -62,7 +62,7 @@ We've added a new class, Dot_Request, which lets you have control over the reque   -There have been a lot of commits in our SVN repository since the latest release, so we can't cover all changes in this blog post. Please download DotKernel 1.8.0 (LTS) try it out yourself and tell us what you think. +There have been a lot of commits in our SVN repository since the latest release, so we can't cover all changes in this blog post. Please download Dotkernel 1.8.0 (LTS) try it out yourself and tell us what you think.   @@ -70,7 +70,7 @@ There have been a lot of commits in our SVN repository since the latest release,
        - What does LTS mean for DotKernel 1.8.0? + + What does LTS mean for Dotkernel 1.8.0? +

        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.

        @@ -78,7 +78,7 @@ There have been a lot of commits in our SVN repository since the latest release,
        What is the Plugin Architecture introduced in 1.8.0? +
        -

        Starting with 1.8.0, DotKernel uses Plugins to make extending the framework easier.

        +

        Starting with 1.8.0, Dotkernel uses Plugins to make extending the framework easier.

        @@ -94,7 +94,7 @@ There have been a lot of commits in our SVN repository since the latest release,
        - What was removed from DotKernel in 1.8.0? + + What was removed from Dotkernel in 1.8.0? +

        WURFL integration was removed (mobile device detection is now handled separately, and WURFL can be added as a plugin), and support for multiple SMTP transporters was removed (it can also be added as a plugin).

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.html.twig index 745d5ca9..4ec49eda 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-1-8-1-upgrade-from-1-8-0-released.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel 1.8.1 + Upgrade from 1.8.0 Released{% endblock %} +{% block title %}Dotkernel 1.8.1 + Upgrade from 1.8.0 Released{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,24 +20,24 @@
        -DotKernel 1.8.1 was just released. +Dotkernel 1.8.1 was just released. -Changes to DotKernel in the latest release: +Changes to Dotkernel in the latest release: - Enhanced Cache Support, which means you can use tags in your cache system if the host suports it Here are some useful download links: -DotKernel 1.8.1 +Dotkernel 1.8.1 -Upgrade from DotKernel 1.8.0 +Upgrade from Dotkernel 1.8.0 -DotKernel 1.8.0 (LTS) +Dotkernel 1.8.0 (LTS)

        Frequently Asked Questions

        - What's new in DotKernel 1.8.1? + + What's new in Dotkernel 1.8.1? +

        The main change is Enhanced Cache Support, which means you can use tags in your cache system if the host supports it.

        @@ -45,7 +45,7 @@ Here are some useful download links:
        How do I upgrade from 1.8.0 to 1.8.1? +
        -

        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.

        +

        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/blog-resource/dotkernel/dotkernel-coding-standard.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-coding-standard.html.twig index 8a7ee279..4faa45bc 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-coding-standard.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-coding-standard.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-coding-standard.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel Coding Standard{% endblock %} +{% block title %}Dotkernel Coding Standard{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,10 +20,10 @@
        -DotKernel will be a "skeleton"of Zend Framework. -DotKernel borrowed the coding standard from Zend Framework: ZF Coding Standard with some exceptions. +Dotkernel will be a "skeleton"of Zend Framework. +Dotkernel borrowed the coding standard from Zend Framework: ZF Coding Standard with some exceptions. -In what follows, we will make remarks only on those features that are slightly different in the coding standards of DotKernel. +In what follows, we will make remarks only on those features that are slightly different in the coding standards of Dotkernel. B.2. PHP File Formatting @@ -62,15 +62,15 @@ e.g:
        - What coding standard does DotKernel follow? + + What coding standard does Dotkernel follow? +
        -

        DotKernel borrows its coding standard from the Zend Framework Coding Standard, with some exceptions described in this article.

        +

        Dotkernel borrows its coding standard from the Zend Framework Coding Standard, with some exceptions described in this article.

        Tabs or spaces for indentation? +
        -

        DotKernel indents with tabs, not spaces.

        +

        Dotkernel indents with tabs, not spaces.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-database-naming-conventions-for-mysql.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-database-naming-conventions-for-mysql.html.twig index 947ca4ea..44d573fe 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-database-naming-conventions-for-mysql.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-database-naming-conventions-for-mysql.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-database-naming-conventions-for-mysql.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel Database Naming Conventions for MySQL{% endblock %} +{% block title %}Dotkernel Database Naming Conventions for MySQL{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
        -DotKernel borrows the database naming conventions from FaZend: Rules of naming of database tables and columns. FaZend is an open-source PHP framework based on Zend Framework. +Dotkernel borrows the database naming conventions from FaZend: Rules of naming of database tables and columns. FaZend is an open-source PHP framework based on Zend Framework. Database naming conventions for tables and columns:
          @@ -65,7 +65,7 @@ The names of database tables and columns must follow camelLetter as nam
          - Where do DotKernel's database naming conventions come from? + + Where do Dotkernel's database naming conventions come from? +

          They are borrowed from FaZend's "Rules of naming of database tables and columns," an open-source PHP framework based on Zend Framework.

          diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-on-nginx.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-on-nginx.html.twig index 416c3800..fb51a642 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-on-nginx.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-on-nginx.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-on-nginx.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel on Nginx{% endblock %} +{% block title %}Dotkernel on Nginx{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -58,12 +58,12 @@ location ~ ^/configs/ {
        -
      •   Export a DotKernel copy from SVN +
      •   Export a Dotkernel copy from SVN
        >svn export --force  http://v1.dotkernel.net/svn/trunk/ /var/www/html
      • Edit application.ini to reflect the current settings and check if is  protected http://nginx.dotkernel.net/configs/application.ini
      • -
      • And walla, site is running on Nginx       http://nginx.dotkernel.net/ +
      • And walla, site is running on Nginx       http://nginx.dotkernel.net/ Admin login is disabled due to security reason.
      • @@ -89,7 +89,7 @@ location ~ ^/configs/ {
        - How was the DotKernel codebase deployed onto the server? + + How was the Dotkernel codebase deployed onto the server? +

        It was exported directly from SVN using svn export --force http://v1.dotkernel.net/svn/trunk/ /var/www/html.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-reserved-variable-names-for-caching.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-reserved-variable-names-for-caching.html.twig index 87e89dde..e5956f85 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-reserved-variable-names-for-caching.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-reserved-variable-names-for-caching.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-reserved-variable-names-for-caching.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel Reserved Variable Names for Caching{% endblock %} +{% block title %}Dotkernel Reserved Variable Names for Caching{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,21 +20,21 @@
        -This article is related to: Caching in DotKernel with Zend Framework Cache +This article is related to: Caching in Dotkernel with Zend Framework Cache -The variables that DotKernel cache are below: +The variables that Dotkernel cache are below:

        Router

        -Router is the object that load routes (modules, controllers, actions) settings from router.xml file. More info about router: http://www.dotkernel.com/docs/router-xml/ +Router is the object that load routes (modules, controllers, actions) settings from router.xml file. More info about router: http://www.dotkernel.com/docs/router-xml/ The router is cached as router.

        Auth / ACL Role

        -The object which authorizes user methods (aka Dot_Auth), used in all DotKernel Applications, Dot_Auth uses /configs/acl/role.xml to define the users rights. +The object which authorizes user methods (aka Dot_Auth), used in all Dotkernel Applications, Dot_Auth uses /configs/acl/role.xml to define the users rights. The role.xml file is cached as acl_role.

        Menu

        -The menu.xml from current module(what is a module?) -More about menu.xml : http://www.dotkernel.com/docs/menu-xml/ +The menu.xml from current module(what is a module?) +More about menu.xml : http://www.dotkernel.com/docs/menu-xml/ The menu is cached as admin_menu, frontend_menu.

        Options

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-template-engine.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-template-engine.html.twig index a4d38818..94ec2e5a 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-template-engine.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-template-engine.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-template-engine.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel Template Engine{% endblock %} +{% block title %}Dotkernel Template Engine{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -22,14 +22,14 @@

        -DotKernel Template Engine is an implementation of PHPLib Template engine for PHP5.

        +Dotkernel Template Engine is an implementation of PHPLib Template engine for PHP5. It has an amazing ability to separate the application code from the presentation layer. Separates the manipulation of data (in the database as well as in PHP) from its final format, whether that format is HTML, XML or a formatted e-mail. The big advantage is that is allowing us to change the look and feel of a site quickly without having to delve immediately into a lot of PHP variable assignments and print statements.

        Frequently Asked Questions

        - What is the DotKernel Template Engine based on? + + What is the Dotkernel Template Engine based on? +

        It's an implementation of the PHPLib Template engine for PHP5.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-version-1-0-in-action.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-version-1-0-in-action.html.twig index d527bee1..0c875ee0 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-version-1-0-in-action.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/dotkernel-version-1-0-in-action.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/dotkernel-version-1-0-in-action.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel version 1.0 in action{% endblock %} +{% block title %}Dotkernel version 1.0 in action{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -22,13 +22,13 @@
        -DotKernel is the DotBoost's in-house developed framework, based on Zend Framework. -DotKernel is at version 1.0 , released under Open Software License (OSL 3.0) , and is built on top of Zend Framework.
        -
        DotKernel is using a simplified MVC (Model-View-Controller) architecture, easy to learn by beginner and intermediate level programmers. +Dotkernel is the DotBoost's in-house developed framework, based on Zend Framework. +Dotkernel is at version 1.0 , released under Open Software License (OSL 3.0) , and is built on top of Zend Framework.
        +
        Dotkernel is using a simplified MVC (Model-View-Controller) architecture, easy to learn by beginner and intermediate level programmers. It has eliminated the complexity of Zend Framework by using a different approach of how the web request are handled.
        -

        From Zend Framework, DotKernel is using only the necessary classes:

        +

        From Zend Framework, Dotkernel is using only the necessary classes:

      ACL roles (user types) and permissions are configured in the configs/acl/role.xml file. -In DotKernel there are 3 roles: guest, user and admin. +In Dotkernel there are 3 roles: guest, user and admin. The resources for ACL are taken from configs/router.xml – see controllers tag. The Dot_Acl class @@ -70,9 +70,9 @@ $dotAuth->checkIdentity('user');
      - When were Zend_Auth and Zend_Acl integrated into DotKernel? + + When were Zend_Auth and Zend_Acl integrated into Dotkernel? +
      -

      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.

      +

      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.

      @@ -82,9 +82,9 @@ $dotAuth->checkIdentity('user');
      - What roles exist for ACL in DotKernel? + + What roles exist for ACL in Dotkernel? +
      -

      DotKernel defines 3 ACL roles (user types): guest, user, and admin. These roles and their permissions are configured in the configs/acl/role.xml file.

      +

      Dotkernel defines 3 ACL roles (user types): guest, user, and admin. These roles and their permissions are configured in the configs/acl/role.xml file.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/zend-console-implementation-in-dotkernel.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/zend-console-implementation-in-dotkernel.html.twig index e53d2c06..2fbea5f0 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/zend-console-implementation-in-dotkernel.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/zend-console-implementation-in-dotkernel.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/zend-console-implementation-in-dotkernel.jsonld.twig') }} {% endblock %} -{% block title %}Zend_Console implementation in DotKernel{% endblock %} +{% block title %}Zend_Console implementation in Dotkernel{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -Starting with 1.5, DotKernel has a Console bootstrap to easily run PHP scripts from the command line. The most common use for this is to be able to run cron jobs without using wget and going through Apache. +Starting with 1.5, Dotkernel has a Console bootstrap to easily run PHP scripts from the command line. The most common use for this is to be able to run cron jobs without using wget and going through Apache. @@ -33,7 +33,7 @@ Currently there are two command line arguments:
    Any other arguments set when calling the script will be available in the controller in the $registry->arguments array. -The controller bundled with DotKernel has two example actions, "count-users" which demonstrates how to interact with models, and "send-newsletter" which reads the newsletter from the command line. +The controller bundled with Dotkernel has two example actions, "count-users" which demonstrates how to interact with models, and "send-newsletter" which reads the newsletter from the command line.

    Examples

    >/var/www/vhosts/example.com/httpdocs/Cron/index.php -e staging -a count-users
    >/var/www/vhosts/example.com/httpdocs/Cron/index.php -e staging -a send-newsletter "test newsletter"
    @@ -42,9 +42,9 @@ The controller bundled with DotKernel has two example actions, "count-users" whi
    - What is the purpose of the Console bootstrap in DotKernel? + + What is the purpose of the Console bootstrap in Dotkernel? +
    -

    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.

    +

    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.

    diff --git a/src/Blog/templates/page/blog-resource/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.html.twig index 68a62f7a..8fcdc4f9 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/zend-framework-dropped-integration-of-wurfl-adapter.html.twig @@ -34,7 +34,7 @@ to change code when upgrading to ZF 1.12.0, or grab the WURFL adapter from a previous version. So its a good moment to check the old or current projects, and proceed. -DotKernel framework is using its own WURFL adapter, so this will not affect projects built with it . +Dotkernel framework is using its own WURFL adapter, so this will not affect projects built with it .

    Frequently Asked Questions

    @@ -46,9 +46,9 @@ DotKernel framework is using its own WURFL adapter, so this will not affect proj
    - Does this change affect projects built with DotKernel? + + Does this change affect projects built with Dotkernel? +
    -

    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.

    +

    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/blog-resource/dotkernel/zend-registry-usage-in-dotkernel.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/zend-registry-usage-in-dotkernel.html.twig index 4ff97a62..b699757c 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/zend-registry-usage-in-dotkernel.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/zend-registry-usage-in-dotkernel.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/zend-registry-usage-in-dotkernel.jsonld.twig') }} {% endblock %} -{% block title %}Zend Registry usage in DotKernel{% endblock %} +{% block title %}Zend Registry usage in Dotkernel{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
    -In DotKernel, Zend_Registry will contain the following variables: +In Dotkernel, Zend_Registry will contain the following variables:
    • startTime - the result of microtime() at the beginning of the request
    • configuration - the configuration options loaded from configs/application.ini
    • @@ -48,7 +48,7 @@ You can find more information about Zend_Registry, in the
      - What variables does Zend_Registry contain in DotKernel? + + What variables does Zend_Registry contain in Dotkernel? +

      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/<moduleName>.xml), and session (the session object).

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.html.twig index 76ac6f21..f18ad602 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/zend-session-usage-in-dotkernel-refactor-of-dot-session-class.jsonld.twig') }} {% endblock %} -{% block title %}Zend_Session usage in DotKernel - Refactor of Dot_Session class{% endblock %} +{% block title %}Zend_Session usage in Dotkernel - Refactor of Dot_Session class{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -We found a strange behaviour of sessions in one of our project, running DotKernel version 1.5.0 +We found a strange behaviour of sessions in one of our project, running Dotkernel version 1.5.0 Similar to this one described here @@ -35,7 +35,7 @@ Quote from If you call the rememberMe() function, then don't use regenerateId(), since the former calls the latter.  If a user has successfully logged into your website, use rememberMe() instead of regenerateId(). So i removed regenerateID() call,   also added 2 new settings in application.ini  related to session : use_only_cookies, which must be ON all the time in order to avoid session fixation , and remember_me_seconds. -Those small bug fixes will be included in the new DotKernel version 1.5.1 which will be released  next days. +Those small bug fixes will be included in the new Dotkernel version 1.5.1 which will be released  next days. TIP @@ -49,7 +49,7 @@ if you encounter the same issue in IE8 and IE9 , then with all regret, you need
      - What session bug was found in DotKernel 1.5.0? + + What session bug was found in Dotkernel 1.5.0? +

      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.

      @@ -63,7 +63,7 @@ if you encounter the same issue in IE8 and IE9 , then with all regret, you need
      What was the fix, and where was it released? +
      -

      The regenerateID() call was removed, and two new application.ini settings were added: use_only_cookies, which must be ON at all times to avoid session fixation, and remember_me_seconds. These fixes were included in DotKernel version 1.5.1.

      +

      The regenerateID() call was removed, and two new application.ini settings were added: use_only_cookies, which must be ON at all times to avoid session fixation, and remember_me_seconds. These fixes were included in Dotkernel version 1.5.1.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.html.twig b/src/Blog/templates/page/blog-resource/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.html.twig index 245dd6af..2358df60 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel/zend-studio-php-formatter-file-for-dotkernel-coding-standard.jsonld.twig') }} {% endblock %} -{% block title %}Zend Studio PHP Formatter file for DotKernel coding standard.{% endblock %} +{% block title %}Zend Studio PHP Formatter file for Dotkernel coding standard.{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
      -Here is  uploaded the XML file , ready to be imported in your Zend Studio, version 9.x +Here is  uploaded the XML file , ready to be imported in your Zend Studio, version 9.x -This file follow DotKernel’s Coding standard. +This file follow Dotkernel’s Coding standard. Unzip the file. Go to Zend Studio -> Preferences -> PHP -> Code Style -> Formatter @@ -34,7 +34,7 @@ Import the xml file.
      What is this file for? +
      -

      It is an XML file, downloadable from the linked page, that can be imported into Zend Studio (version 9.x) to set up the PHP code formatter so it follows DotKernel's coding standard.

      +

      It is an XML file, downloadable from the linked page, that can be imported into Zend Studio (version 9.x) to set up the PHP code formatter so it follows Dotkernel's coding standard.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel3/development-report-december-11-2017.html.twig b/src/Blog/templates/page/blog-resource/dotkernel3/development-report-december-11-2017.html.twig index 2017841d..72ef5f6c 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel3/development-report-december-11-2017.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel3/development-report-december-11-2017.html.twig @@ -20,9 +20,9 @@
      -This report contains updates about the DotKernel3 documentation. +This report contains updates about the Dotkernel3 documentation. -We have added the release notes for DotKernel3 frontend and admin: you can now check the Release Notes page. +We have added the release notes for Dotkernel3 frontend and admin: you can now check the Release Notes page. Webpack tutorial has been added in the Prerequisites section. @@ -48,7 +48,7 @@ The  What documentation updates does this report cover? +
      -

      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.

      +

      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.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel-admin-v4.html.twig b/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel-admin-v4.html.twig index 0389fffc..63d06b3a 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel-admin-v4.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel-admin-v4.html.twig @@ -22,7 +22,7 @@

      Getting Started with Dotkernel Admin V4

      -

      DotKernel's PSR-7 Admin is an application based on Mezzio, with the main purpose of managing and displaying tabular data from one or more databases components.

      +

      Dotkernel's PSR-7 Admin is an application based on Mezzio, with the main purpose of managing and displaying tabular data from one or more databases components.

      On 19 July 2022 Dotkernel Admin V4 has been officially released. Dotkernel Admin V4 comes with various interesting features and overall improvement of the core framework.

      @@ -219,7 +219,7 @@
      When was Dotkernel Admin V4 released, and what is it built on? +
      -

      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.

      +

      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.

      diff --git a/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel3-stable-release-version-1-0.html.twig b/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel3-stable-release-version-1-0.html.twig index 1e6df064..25a3c106 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel3-stable-release-version-1-0.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel3/dotkernel3-stable-release-version-1-0.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/dotkernel3/dotkernel3-stable-release-version-1-0.jsonld.twig') }} {% endblock %} -{% block title %}DotKernel3 - Stable Release version 1.0{% endblock %} +{% block title %}Dotkernel3 - Stable Release version 1.0{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -DotKernel was updated to support Zend Expressive 3 alongside with PSR-15 middleware. +Dotkernel was updated to support Zend Expressive 3 alongside with PSR-15 middleware. We have updated the core packages to support PSR-15 Middleware. @@ -32,7 +32,7 @@ admin -> this guide. +If your project is a Dotkernel 3 instance (based on expressive 2), you can migrate your project to Zend Expressive 3 by following this guide.

      What's new

      • Runs on Zend Stratigility / Zend Expressive 3.0
      • @@ -98,7 +98,7 @@ If your project is a DotKernel 3 instance (based on expressive 2), you can migra
        What is the headline change in this stable release? +
        -

        DotKernel was updated to support Zend Expressive 3 alongside PSR-15 middleware, with the core packages updated to support PSR-15 Middleware, making both frontend and admin easier to migrate.

        +

        Dotkernel was updated to support Zend Expressive 3 alongside PSR-15 middleware, with the core packages updated to support PSR-15 Middleware, making both frontend and admin easier to migrate.

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-admin.html.twig b/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-admin.html.twig index 15c68b77..7247071b 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-admin.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-admin.html.twig @@ -20,7 +20,7 @@
        -

        With the release of PHP 8.3, the DotKernel team has been working on updating the dependencies in our packages. Eventually, this allowed us to update our Applications as well, starting with the Admin, in release 4.3.1

        +

        With the release of PHP 8.3, the Dotkernel team has been working on updating the dependencies in our packages. Eventually, this allowed us to update our Applications as well, starting with the Admin, in release 4.3.1

        There were some issues and backward incompatibilities that we will list below.

        @@ -141,7 +141,7 @@

        -

        The DotKernel team is focused on the cache that has been removed in the current version because doctrine/cache deleted their cache implementation classes. We are also updating our existing projects to PHP 8.3 and testing the changes on live environments to iron out any other issues.

        +

        The Dotkernel team is focused on the cache that has been removed in the current version because doctrine/cache deleted their cache implementation classes. We are also updating our existing projects to PHP 8.3 and testing the changes on live environments to iron out any other issues.

        Frequently Asked Questions

        diff --git a/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-api.html.twig b/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-api.html.twig index 3ed27b2c..2b42d0e7 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-api.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-api.html.twig @@ -124,7 +124,7 @@
      -
    • Note
      • When upgrading from older versions of DotKernel API (before PHP 8.3), you may need to run composer update and/or install Sodium (run sudo dnf install php-sodium.x86_64)
      • +
      • Note
        • When upgrading from older versions of Dotkernel API (before PHP 8.3), you may need to run composer update and/or install Sodium (run sudo dnf install php-sodium.x86_64)
        • Update your queries: replace useQueryCache() with setCacheable() wherever it's used
        diff --git a/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-frontend.html.twig b/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-frontend.html.twig index 6d83c400..9d41b23b 100644 --- a/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-frontend.html.twig +++ b/src/Blog/templates/page/blog-resource/dotkernel3/php-8-3-support-in-dotkernel-frontend.html.twig @@ -20,7 +20,7 @@
        -

        To be able to take advantage of the support for PHP 8.3 in the newest packages, the DotKernel team has updated the Frontend Application to version 4.2.0. Very much like for the Admin update before it, the Frontend must also remove support for PHP 8.1 and the no-longer-available PhpFileCache class until a replacement is implemented.

        +

        To be able to take advantage of the support for PHP 8.3 in the newest packages, the Dotkernel team has updated the Frontend Application to version 4.2.0. Very much like for the Admin update before it, the Frontend must also remove support for PHP 8.1 and the no-longer-available PhpFileCache class until a replacement is implemented.

        The full list of file changes is here.

        @@ -125,7 +125,7 @@
      -

      Next on the menu is to implement these changes in the DotKernel Frontend live projects and process the feedback.

      +

      Next on the menu is to implement these changes in the Dotkernel Frontend live projects and process the feedback.

      Frequently Asked Questions

      @@ -133,7 +133,7 @@
      What update adds PHP 8.3 support to Dotkernel Frontend? +
      -

      The DotKernel team updated the Frontend application to version 4.2.0 so it can take advantage of PHP 8.3 support in the newest packages.

      +

      The Dotkernel team updated the Frontend application to version 4.2.0 so it can take advantage of PHP 8.3 support in the newest packages.

      diff --git a/src/Blog/templates/page/blog-resource/headless-platform/complementary-admin-in-dotkernel-headless-platform.html.twig b/src/Blog/templates/page/blog-resource/headless-platform/complementary-admin-in-dotkernel-headless-platform.html.twig index c5af1142..23b8391b 100644 --- a/src/Blog/templates/page/blog-resource/headless-platform/complementary-admin-in-dotkernel-headless-platform.html.twig +++ b/src/Blog/templates/page/blog-resource/headless-platform/complementary-admin-in-dotkernel-headless-platform.html.twig @@ -22,7 +22,7 @@

      The Dotkernel Headless Platform is built with an architecture designed to be easy to maintain and expand indefinitely. Its core components are Dotkernel API and Dotkernel Queue, but the Dotkernel application suite also offers a fully separate, complementary Admin application designed to pair seamlessly with Dotkernel API.

      -

      What is DotKernel Admin?

      +

      What is Dotkernel Admin?

      Dotkernel Admin is a in separate repository and is a fully-functional, independent application. It's built on top of the same Mezzio + Laminas foundation, very much like Dotkernel API.

      diff --git a/src/Blog/templates/page/blog-resource/how-to/creating-admin-accounts-in-dotkernel-api.html.twig b/src/Blog/templates/page/blog-resource/how-to/creating-admin-accounts-in-dotkernel-api.html.twig index acbe1e60..416ad847 100644 --- a/src/Blog/templates/page/blog-resource/how-to/creating-admin-accounts-in-dotkernel-api.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/creating-admin-accounts-in-dotkernel-api.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/how-to/creating-admin-accounts-in-dotkernel-api.jsonld.twig') }} {% endblock %} -{% block title %}Creating admin accounts in DotKernel API{% endblock %} +{% block title %}Creating admin accounts in Dotkernel API{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
      -

      Creating admin accounts in DotKernel API

      +

      Creating admin accounts in Dotkernel API

      -

      Starting from v3, DotKernel API introduces support for admin accounts. In this article we will describe two different methods of creating an admin account.

      +

      Starting from v3, Dotkernel API introduces support for admin accounts. In this article we will describe two different methods of creating an admin account.

      @@ -122,7 +122,7 @@
      - What are the two ways to create an admin account in DotKernel API? + + What are the two ways to create an admin account in Dotkernel API? +

      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.

      diff --git a/src/Blog/templates/page/blog-resource/how-to/database-migrations-and-how-to-use-them.html.twig b/src/Blog/templates/page/blog-resource/how-to/database-migrations-and-how-to-use-them.html.twig index 55f9a467..f4eecc8a 100644 --- a/src/Blog/templates/page/blog-resource/how-to/database-migrations-and-how-to-use-them.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/database-migrations-and-how-to-use-them.html.twig @@ -25,7 +25,7 @@ Migrations ease the process of working together on projects, as well as deployin   -A newly released package for the DotKernel stack integrates migrations and seeders into the application; This is all done via the newly introduced "php dot" command that's available in the DotKernel stack. +A newly released package for the Dotkernel stack integrates migrations and seeders into the application; This is all done via the newly introduced "php dot" command that's available in the Dotkernel stack. This article assumes that you're familiar with the basic concepts of migrations, if you're not, there's an excellent article available here @@ -41,7 +41,7 @@ When pushing to production, the deployment script will automatically run the mig  

      Getting started

      -To setup migrations, simply follow the installation instructions in the package provided for DotKernel. +To setup migrations, simply follow the installation instructions in the package provided for Dotkernel. After the package has been successfully setup, you're ready to go. To see the available commands, simply write "php dot" in a console that's located in your project root. @@ -90,7 +90,7 @@ Seeders are created the same way as migrations, and also benefits hugely from be
      What is a database migration? +
      -

      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.

      +

      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.

      diff --git a/src/Blog/templates/page/blog-resource/how-to/doctrine-cache-in-mezzio-and-dotkernel.html.twig b/src/Blog/templates/page/blog-resource/how-to/doctrine-cache-in-mezzio-and-dotkernel.html.twig index ef525666..8c36ec5c 100644 --- a/src/Blog/templates/page/blog-resource/how-to/doctrine-cache-in-mezzio-and-dotkernel.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/doctrine-cache-in-mezzio-and-dotkernel.html.twig @@ -20,7 +20,7 @@
      -

      Doctrine caching in DotKernel

      +

      Doctrine caching in Dotkernel

      Following version 2 of doctrine/cache, in 2024 we published an update to this article here: https://www.dotkernel.com/dotkernel/doctrine-cache-using-symfony-cache/

      diff --git a/src/Blog/templates/page/blog-resource/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.html.twig b/src/Blog/templates/page/blog-resource/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.html.twig index f328f0aa..2c180f5f 100644 --- a/src/Blog/templates/page/blog-resource/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/how-to/list-available-endpoints-in-dotkernel-api-using-dot-cli.jsonld.twig') }} {% endblock %} -{% block title %}List available endpoints in DotKernel API using dot-cli{% endblock %} +{% block title %}List available endpoints in Dotkernel API using dot-cli{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
      -

      Displaying DotKernel API endpoints using dot-cli

      +

      Displaying Dotkernel API endpoints using dot-cli

      -

      Starting from version 3, DotKernel API uses dot-cli to display a list of available endpoints.

      +

      Starting from version 3, Dotkernel API uses dot-cli to display a list of available endpoints.

      Usage

      @@ -109,9 +109,9 @@
      - What tool does DotKernel API use to list available endpoints? + + What tool does Dotkernel API use to list available endpoints? +
      -

      Starting from version 3, DotKernel API uses dot-cli to display a list of available endpoints.

      +

      Starting from version 3, Dotkernel API uses dot-cli to display a list of available endpoints.

      diff --git a/src/Blog/templates/page/blog-resource/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.html.twig b/src/Blog/templates/page/blog-resource/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.html.twig index 7bdff9ba..a8592264 100644 --- a/src/Blog/templates/page/blog-resource/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/how-to/migrating-dotkernel-3-from-zend-expressive-2-to-zend-expressive-3.jsonld.twig') }} {% endblock %} -{% block title %}Migrating DotKernel 3 from Zend Expressive 2 to Zend Expressive 3{% endblock %} +{% block title %}Migrating Dotkernel 3 from Zend Expressive 2 to Zend Expressive 3{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,7 +20,7 @@
      -This article covers the steps required to migrate a DotKernel 3 instance to the latest Zend Expressive Version. +This article covers the steps required to migrate a Dotkernel 3 instance to the latest Zend Expressive Version. @@ -41,7 +41,7 @@ By updating your middleware the Delegates will become If your project only contains controller-based middleware it can be migrated by following the guides below.   -

      DotKernel3 Migration - Expressive 2.0 -> 3.0

      +

      Dotkernel3 Migration - Expressive 2.0 -> 3.0

       

      Packages

      In composer.json replace the matching repositories with the following: diff --git a/src/Blog/templates/page/blog-resource/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.html.twig b/src/Blog/templates/page/blog-resource/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.html.twig index 86b2626e..ebd1271e 100644 --- a/src/Blog/templates/page/blog-resource/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/replacing-dot-console-with-dot-cli-based-on-laminas-cli.html.twig @@ -24,7 +24,7 @@

      Implementing dot-cli in your application

      -

      DotKernel's dot-cli package comes as a replacement for dot-console, which was abandoned after Laminas abandoned their laminas-console package, that dot-console was based on.

      +

      Dotkernel's dot-cli package comes as a replacement for dot-console, which was abandoned after Laminas abandoned their laminas-console package, that dot-console was based on.

      @@ -62,7 +62,7 @@

      The output should look similar to this, containing information on how to start using dot-cli:

      -
      DotKernel CLI 1.0.0

      Usage:
      command

      Options:
      -h, --help Display help for the given command. When no command is given display help for the list command
      -q, --quiet Do not output any message
      -V, --version Display this application version
      --ansi Force ANSI output
      --no-ansi Disable ANSI output
      -n, --no-interaction Do not ask any interactive question
      -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

      Available commands:
      help Display help for a command
      list List commands
      demo
      demo:command Demo command description.
      +
      Dotkernel CLI 1.0.0

      Usage:
      command

      Options:
      -h, --help Display help for the given command. When no command is given display help for the list command
      -q, --quiet Do not output any message
      -V, --version Display this application version
      --ansi Force ANSI output
      --no-ansi Disable ANSI output
      -n, --no-interaction Do not ask any interactive question
      -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

      Available commands:
      help Display help for a command
      list List commands
      demo
      demo:command Demo command description.

      Set up command as cronjob

      diff --git a/src/Blog/templates/page/blog-resource/how-to/using-postman-for-documentation-in-dotkernel-api-3.html.twig b/src/Blog/templates/page/blog-resource/how-to/using-postman-for-documentation-in-dotkernel-api-3.html.twig index 991503e8..364b0453 100644 --- a/src/Blog/templates/page/blog-resource/how-to/using-postman-for-documentation-in-dotkernel-api-3.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/using-postman-for-documentation-in-dotkernel-api-3.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/how-to/using-postman-for-documentation-in-dotkernel-api-3.jsonld.twig') }} {% endblock %} -{% block title %}Using Postman for documentation in DotKernel API 3{% endblock %} +{% block title %}Using Postman for documentation in Dotkernel API 3{% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
      -

      Using Postman documentation in DotKernel API 3

      +

      Using Postman documentation in Dotkernel API 3

      -

      Starting from version 3.0 DotKernel API provides it's documentation using Postman.

      +

      Starting from version 3.0 Dotkernel API provides it's documentation using Postman.

      In this article we will go into the details of creating and maintaining your application's documentation.

      @@ -32,7 +32,7 @@

      In order to follow the steps, you will need the following:

      -
      • a working installation of DotKernel API 3
      • download and install Postman from their download page.
      +
      • a working installation of Dotkernel API 3
      • download and install Postman from their download page.

      TIP: If you don't have a Postman account, we recommend you to create one. This way Postman is able to backup your workspace in the cloud and synchronize it across multiple devices.

      @@ -40,7 +40,7 @@

      For better understanding on how Postman works, we need to run through the "building blocks" of Postman:

      -
      • Workspace: is the main container that holds all your collections, APIs, environments etc
      • Collection: holds all requests and dependencies of a project (for example DotKernel API's collection containing all requests)
      • Environment: holds a set of environment-specific variables (for example DotKernel API's environment file cotaining the application URL specific to the development environment)
      • Request: the definition of an API endpoint, including request method, name, description, URL, body, parameters and an example
      +
      • Workspace: is the main container that holds all your collections, APIs, environments etc
      • Collection: holds all requests and dependencies of a project (for example Dotkernel API's collection containing all requests)
      • Environment: holds a set of environment-specific variables (for example Dotkernel API's environment file cotaining the application URL specific to the development environment)
      • Request: the definition of an API endpoint, including request method, name, description, URL, body, parameters and an example

      There are more terms to cover, like Mock servers, Monitors etc but they are not relevant yet in our case.

      @@ -48,7 +48,7 @@

      Open Postman (and log in if you have an account), then follow the below steps:

      -
      • open the import modal by clicking File -> Import (or Ctrl + O)
      • inside the modal, make sure you're on the File tab, then click Upload files
      • navigate to documentation directory of your DotKernel API 3 application and select both of the following files:
        • DotKernel_API.postman_collection.json
        • DotKernel_API.postman_environment.json
      • after clicking Open the modal should show the following:
      +
      • open the import modal by clicking File -> Import (or Ctrl + O)
      • inside the modal, make sure you're on the File tab, then click Upload files
      • navigate to documentation directory of your Dotkernel API 3 application and select both of the following files:
        • DotKernel_API.postman_collection.json
        • DotKernel_API.postman_environment.json
      • after clicking Open the modal should show the following:
      Select files to import . 2/2 selected
       NAME                 FORMAT                         IMPORT AS
      @@ -59,7 +59,7 @@ NAME                 FORMAT                         IMPORT AS
       
       

      Under My Workspace you should see a tab called Collections. Clicking on it should display all your collections, one of them called DotKernel_API. This collection holds all of the provided requests and serves as the documentation of your application.

      -

      DotKernel API 3 collection and environment files ar now imported and ready to use.

      +

      Dotkernel API 3 collection and environment files ar now imported and ready to use.

      For more information on importing files into Postman, please consult their docs.

      @@ -93,7 +93,7 @@ VARIABLE INITIAL VALUE CURRENT_VALUE

      Features

      -

      The collection provided by DotKernel API 3 comes with some built-in security features.

      +

      The collection provided by Dotkernel API 3 comes with some built-in security features.

      Global security

      @@ -135,11 +135,11 @@ VARIABLE INITIAL VALUE CURRENT_VALUE
      What are Postman's main "building blocks"? +
      -

      Workspace (the main container holding all collections, APIs and environments), Collection (holds all requests and dependencies of a project, such as DotKernel API's collection), Environment (holds environment-specific variables, like the application URL), and Request (the definition of an API endpoint, including method, name, description, URL, body, parameters and an example).

      +

      Workspace (the main container holding all collections, APIs and environments), Collection (holds all requests and dependencies of a project, such as Dotkernel API's collection), Environment (holds environment-specific variables, like the application URL), and Request (the definition of an API endpoint, including method, name, description, URL, body, parameters and an example).

      - How do you import DotKernel API's documentation files into Postman? + + How do you import Dotkernel API's documentation files into Postman? +

      Open the import modal via File -> Import (or Ctrl + O), go to the File tab, click Upload files, then select both DotKernel_API.postman_collection.json and DotKernel_API.postman_environment.json from the application's documentation directory, and click Import.

      diff --git a/src/Blog/templates/page/blog-resource/how-to/using-the-urlgenerator-work-in-fastroute.html.twig b/src/Blog/templates/page/blog-resource/how-to/using-the-urlgenerator-work-in-fastroute.html.twig index f37c1a24..beb2e14f 100644 --- a/src/Blog/templates/page/blog-resource/how-to/using-the-urlgenerator-work-in-fastroute.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/using-the-urlgenerator-work-in-fastroute.html.twig @@ -20,11 +20,11 @@
      -DotKernel 3 uses FastRoute under the hood, which is an excellent and fast routing package, but it does have some quirks. +Dotkernel 3 uses FastRoute under the hood, which is an excellent and fast routing package, but it does have some quirks. A wrong setup can lead to many headaches, as it's not prominent that the error you're experiencing is from FastRoute, and you may not know where exactly to look for the cause. -To save you some time, here's a how-to for creating and using routes in DotKernel 3. +To save you some time, here's a how-to for creating and using routes in Dotkernel 3.

      Declaring routes

      When defining routes in the routes.php file, they need to follow a specific pattern, a usual route would look like this:
      >$app->route('/page', , , 'page');
      diff --git a/src/Blog/templates/page/blog-resource/how-to/what-is-psr-7-and-how-to-use-it.html.twig b/src/Blog/templates/page/blog-resource/how-to/what-is-psr-7-and-how-to-use-it.html.twig index a5cbf605..8683f4a9 100644 --- a/src/Blog/templates/page/blog-resource/how-to/what-is-psr-7-and-how-to-use-it.html.twig +++ b/src/Blog/templates/page/blog-resource/how-to/what-is-psr-7-and-how-to-use-it.html.twig @@ -84,7 +84,7 @@ $body->write($contents); // stream contains "efabcd"

      Note: getContents() seeks the stream while reading it, therefore if the second rewind() method call was not present the stream would have resulted in abcdefabcd because the write() method appends to stream if not preceeded by rewind() or seek(0).

      Prepending by using contents as a string

      >$body = $response->getBody();
       $body->rewind(); // or $body->seek(0);
       $bodyText = $body->getContends();
      -

      More information can be found in the PSR-7 article in DotKernel3 documentation portal.

      Sources: PSR-7: HTTP messages zend-diactoros

      +

      More information can be found in the PSR-7 article in Dotkernel3 documentation portal.

      Sources: PSR-7: HTTP messages zend-diactoros

      Frequently Asked Questions

      diff --git a/src/Blog/templates/page/blog-resource/javascript/intro-to-jquery.html.twig b/src/Blog/templates/page/blog-resource/javascript/intro-to-jquery.html.twig index d4dd46b8..0b49693c 100644 --- a/src/Blog/templates/page/blog-resource/javascript/intro-to-jquery.html.twig +++ b/src/Blog/templates/page/blog-resource/javascript/intro-to-jquery.html.twig @@ -20,7 +20,7 @@
      -Starting with the 1.5 release, DotKernel will make the switch from Dojo to jQuery. +Starting with the 1.5 release, Dotkernel will make the switch from Dojo to jQuery. On jQuery's website, there's an excellent "Getting started with jQuery tutorial", as well as a extensive documentation for the framework, so I'll just go over a few basic concepts and common examples. @@ -83,9 +83,9 @@ The following snippet can be used on a registration form to check whether the us
      - Why is DotKernel switching to jQuery? + + Why is Dotkernel switching to jQuery? +
      -

      Starting with the 1.5 release, DotKernel makes the switch from Dojo to jQuery.

      +

      Starting with the 1.5 release, Dotkernel makes the switch from Dojo to jQuery.

      diff --git a/src/Blog/templates/page/blog-resource/licensing/mit-versus-lgpl-in-practice-dotkernel-case.html.twig b/src/Blog/templates/page/blog-resource/licensing/mit-versus-lgpl-in-practice-dotkernel-case.html.twig index c213421e..8c298b3f 100644 --- a/src/Blog/templates/page/blog-resource/licensing/mit-versus-lgpl-in-practice-dotkernel-case.html.twig +++ b/src/Blog/templates/page/blog-resource/licensing/mit-versus-lgpl-in-practice-dotkernel-case.html.twig @@ -20,7 +20,7 @@
      -

      After a recent analysis, we discovered that one of the upstream packages we use is licensed under LGPL v3. Even though we at DotKernel use the MIT license for our open source projects, the more restrictive license must be applied to the whole application. We implemented a workaround detailed below.

      +

      After a recent analysis, we discovered that one of the upstream packages we use is licensed under LGPL v3. Even though we at Dotkernel use the MIT license for our open source projects, the more restrictive license must be applied to the whole application. We implemented a workaround detailed below.

      Detailing the problem

      @@ -28,9 +28,9 @@

      The solution

      -

      Some companies explicitly steer clear of scenarios of this nature and DotKernel has decided to do the same. Our solution for DotKernel applications and libraries is to discard the use of 3rd party packages with LGPL v3. In this particular case we used the matomo/device-detector package in our dotkernel/dot-user-agent-sniffer package for the purpose of identifying the user agent and using the results in internal reports.

      +

      Some companies explicitly steer clear of scenarios of this nature and Dotkernel has decided to do the same. Our solution for Dotkernel applications and libraries is to discard the use of 3rd party packages with LGPL v3. In this particular case we used the matomo/device-detector package in our dotkernel/dot-user-agent-sniffer package for the purpose of identifying the user agent and using the results in internal reports.

      -

      ALL of DotKernel's packages are licensed under MIT which has no restrictions regarding the source code, other than keeping the license and copyright notice in a file within each package. Other non-restrictive licenses include Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0 and OSL-3.0. Some of them are used by the dependencies in DotKernel’s packages instead of MIT, but are still deemed acceptable.

      +

      ALL of Dotkernel's packages are licensed under MIT which has no restrictions regarding the source code, other than keeping the license and copyright notice in a file within each package. Other non-restrictive licenses include Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0 and OSL-3.0. Some of them are used by the dependencies in Dotkernel’s packages instead of MIT, but are still deemed acceptable.

      The resolution

      @@ -38,7 +38,7 @@

      Important note

      -

      Warning: Any application using dotkernel/dot-user-agent-sniffer with a version lower than 3.4.0 is still a legal liability. We at DotKernel will not abandon the issue as is, but are looking into a solution to bring back the device detector functionality in the future under a less restrictive license. For now we will not include dotkernel/dot-user-agent-sniffer in any of our applications by default.

      +

      Warning: Any application using dotkernel/dot-user-agent-sniffer with a version lower than 3.4.0 is still a legal liability. We at Dotkernel will not abandon the issue as is, but are looking into a solution to bring back the device detector functionality in the future under a less restrictive license. For now we will not include dotkernel/dot-user-agent-sniffer in any of our applications by default.

      Rob Allen has created an automation to check the licenses of installed packages. You can follow his article here.

      @@ -46,21 +46,21 @@
      - Why did DotKernel need a workaround for this package? + + Why did Dotkernel need a workaround for this package? +
      -

      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.

      +

      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.

      Where was the LGPL v3 package being used? +
      -

      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.

      +

      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.

      - What solution did DotKernel adopt? + + What solution did Dotkernel adopt? +
      -

      DotKernel decided to discard the use of third-party packages licensed under LGPL v3. All of DotKernel's own packages are licensed under MIT, which has no restrictions on the source code other than keeping the license and copyright notice in a file within each package. Other non-restrictive licenses considered acceptable include Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0 and OSL-3.0.

      +

      Dotkernel decided to discard the use of third-party packages licensed under LGPL v3. All of Dotkernel's own packages are licensed under MIT, which has no restrictions on the source code other than keeping the license and copyright notice in a file within each package. Other non-restrictive licenses considered acceptable include Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MPL-2.0 and OSL-3.0.

      @@ -72,7 +72,7 @@
      Is it still risky to use an older version of dot-user-agent-sniffer? +
      -

      Yes. Any application using dotkernel/dot-user-agent-sniffer with a version lower than 3.4.0 is still a legal liability. DotKernel states it will not include dotkernel/dot-user-agent-sniffer in any of its applications by default for now, while it looks into bringing back the device detector functionality under a less restrictive license in the future.

      +

      Yes. Any application using dotkernel/dot-user-agent-sniffer with a version lower than 3.4.0 is still a legal liability. Dotkernel states it will not include dotkernel/dot-user-agent-sniffer in any of its applications by default for now, while it looks into bringing back the device detector functionality under a less restrictive license in the future.

      diff --git a/src/Blog/templates/page/blog-resource/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.html.twig b/src/Blog/templates/page/blog-resource/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.html.twig index 0b9ecadc..7a307321 100644 --- a/src/Blog/templates/page/blog-resource/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.html.twig +++ b/src/Blog/templates/page/blog-resource/php-development/better-unicode-support-in-mysql-5-5-utf8mb4.html.twig @@ -23,7 +23,7 @@ Beginning with version 5.5 of MySQL , utf8mb4 character set was introduced, in order to better support Unicode. Further reading: MySQL and Unicode , also directly related to PHP -Sample dk.sql file, part of DotKernel framework, was updated in revision 793 +Sample dk.sql file, part of Dotkernel framework, was updated in revision 793 Only one downside , is not possible to use anymore VARCHAR(255), as you will get the error:
      >#1071 - Specified key was too long; max key length is 767 bytes
      diff --git a/src/Blog/templates/page/blog-resource/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.html.twig b/src/Blog/templates/page/blog-resource/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.html.twig index efd11657..f0bd1349 100644 --- a/src/Blog/templates/page/blog-resource/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.html.twig +++ b/src/Blog/templates/page/blog-resource/php-development/database-seeding-doctrine-data-fixtures-vs-phinx.html.twig @@ -26,7 +26,7 @@

      Seeding the database the right way is no easy feat, and we will see why.

      -

      Previous versions of DotKernel 3 used cakephp/phinx for seeding the database. While the package did a great job at populating the database, we wanted more. We wanted more flexibility - so we started to search for alternatives.

      +

      Previous versions of Dotkernel 3 used cakephp/phinx for seeding the database. While the package did a great job at populating the database, we wanted more. We wanted more flexibility - so we started to search for alternatives.

      Because we are using Doctrine as our database abstraction layer, the obvious choice was to give doctrine/data-fixtures a shot and use it as our database seeder, instead of phinx - but there's a catch.

      @@ -40,7 +40,7 @@

      NOTE:

      -

      The package dotkernel/dot-data-fixture does NOT depend on other DotKernel packages. The only dependency is Doctrine

      +

      The package dotkernel/dot-data-fixture does NOT depend on other Dotkernel packages. The only dependency is Doctrine

      Installation

      diff --git a/src/Blog/templates/page/blog-resource/php-development/mezzio-app-development-in-wsl2.html.twig b/src/Blog/templates/page/blog-resource/php-development/mezzio-app-development-in-wsl2.html.twig index 40f984eb..3cbdd8f2 100644 --- a/src/Blog/templates/page/blog-resource/php-development/mezzio-app-development-in-wsl2.html.twig +++ b/src/Blog/templates/page/blog-resource/php-development/mezzio-app-development-in-wsl2.html.twig @@ -20,9 +20,9 @@
      -

      Install a Mezzio app (DotKernel API) using WSL2

      +

      Install a Mezzio app (Dotkernel API) using WSL2

      -

      This article will run you through the steps of installing a Mezzio application (DotKernel API) in WSL2 and run it on Ubuntu 20.04 LTS.

      +

      This article will run you through the steps of installing a Mezzio application (Dotkernel API) in WSL2 and run it on Ubuntu 20.04 LTS.

      Step 1:

      @@ -42,7 +42,7 @@
      cd /home/your-username/projects/your-virtualhost
      -

      Install DotKernel API, by following this guide.

      +

      Install Dotkernel API, by following this guide.

      Make sure your data and log directories are writable by changing their permissions, as described here.

      @@ -62,7 +62,7 @@
      What does this guide help you accomplish? +
      -

      It walks you through installing a Mezzio application (DotKernel API) using WSL2 and running it on Ubuntu 20.04 LTS.

      +

      It walks you through installing a Mezzio application (Dotkernel API) using WSL2 and running it on Ubuntu 20.04 LTS.

      @@ -78,9 +78,9 @@
      - How do you install DotKernel API once the virtual host is ready? + + How do you install Dotkernel API once the virtual host is ready? +
      -

      Using your terminal, move into the virtual host directory you created (for example, cd /home/your-username/projects/your-virtualhost), then install DotKernel API by following its guide. Afterward, make sure the data and log directories are writable by changing their permissions, as described in the linked permission-fix guide.

      +

      Using your terminal, move into the virtual host directory you created (for example, cd /home/your-username/projects/your-virtualhost), then install Dotkernel API by following its guide. Afterward, make sure the data and log directories are writable by changing their permissions, as described in the linked permission-fix guide.

      diff --git a/src/Blog/templates/page/blog-resource/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.html.twig b/src/Blog/templates/page/blog-resource/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.html.twig index 9461dc65..990795dd 100644 --- a/src/Blog/templates/page/blog-resource/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.html.twig +++ b/src/Blog/templates/page/blog-resource/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.html.twig @@ -1,7 +1,7 @@ {% extends '@layout/default.html.twig' %} {% block json_ld %} {{ include('@jsonld/php-development/using-aptana-to-connect-to-dotkernel-tracker-mantis.jsonld.twig') }} {% endblock %} -{% block title %}Using Aptana to connect to DotKernel tracker (Mantis){% endblock %} +{% block title %}Using Aptana to connect to Dotkernel tracker (Mantis){% endblock %} {% block page_title %} {{ include('@partial/title-section.html.twig', { @@ -20,9 +20,9 @@
      -In developing DotKernel application framework, we needed a tracking system. DotKernel Tracker is the place where the bugs are reported, new features are announced and other general tickets are added. +In developing Dotkernel application framework, we needed a tracking system. Dotkernel Tracker is the place where the bugs are reported, new features are announced and other general tickets are added. -DotKernel Tracker is a Mantis web-based bugtracking system. To simplify the development of DotKernel, we integrated our web development IDE – Aptana with our bugtracking system – DotKernel Tracker. In the Downloads section, you will find screenshots with the below steps for Using Aptana with the Mylyn connector for Mantis +Dotkernel Tracker is a Mantis web-based bugtracking system. To simplify the development of Dotkernel, we integrated our web development IDE – Aptana with our bugtracking system – Dotkernel Tracker. In the Downloads section, you will find screenshots with the below steps for Using Aptana with the Mylyn connector for Mantis 1. Install Aptana 2.0.5 by following these steps: http://www.dotkernel.com/php-development/aptana-php-installation-in-aptana-2-x/ @@ -47,7 +47,7 @@ In developing DotKernel application framework, we needed a trac Server : http://www.dotkernel.net/api/soap/mantisconnect.php -Label: DotKernel Tracker (or a custom string ) +Label: Dotkernel Tracker (or a custom string ) User ID: your username from http://www.dotkernel.net/. If you don’t have an account, signup here @@ -55,7 +55,7 @@ In developing DotKernel application framework, we needed a trac 9. A window will popup asking if you want to create a query;  click Yes -10. Select project: DotKernel +10. Select project: Dotkernel Select filter: [Build-in] Latest Dot Kernel tasks @@ -67,15 +67,15 @@ In developing DotKernel application framework, we needed a trac
      - What is DotKernel Tracker? + + What is Dotkernel Tracker? +
      -

      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.

      +

      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.

      - How is Aptana integrated with DotKernel Tracker? + + How is Aptana integrated with Dotkernel Tracker? +
      -

      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.

      +

      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.

      @@ -85,9 +85,9 @@ In developing DotKernel application framework, we needed a trac
      - What information is needed to add DotKernel Tracker as a task repository? + + What information is needed to add Dotkernel Tracker as a task repository? +
      -

      You need the server URL (http://www.dotkernel.net/api/soap/mantisconnect.php), a label of your choosing (e.g. "DotKernel Tracker"), and your User ID, which is your username from dotkernel.net (you can sign up if you don't already have an account).

      +

      You need the server URL (http://www.dotkernel.net/api/soap/mantisconnect.php), a label of your choosing (e.g. "Dotkernel Tracker"), and your User ID, which is your username from dotkernel.net (you can sign up if you don't already have an account).

      diff --git a/src/Blog/templates/page/blog-resource/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.html.twig b/src/Blog/templates/page/blog-resource/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.html.twig index 4bcbff8c..7bcba450 100644 --- a/src/Blog/templates/page/blog-resource/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.html.twig +++ b/src/Blog/templates/page/blog-resource/zend-framework/scienta-zf-debug-bar-a-very-helpfull-zf-debug-tool.html.twig @@ -24,7 +24,7 @@ Just found today a very interesting and helpful debug tool: Scienta -We at DotKernel used some very basic debug bar:  queries, time spent , memory used.  But this Scienta is way more complex and nicer then our internal code,  so we switch to it and integrate it in DotKernel code base. +We at Dotkernel used some very basic debug bar:  queries, time spent , memory used.  But this Scienta is way more complex and nicer then our internal code,  so we switch to it and integrate it in Dotkernel code base.

      Frequently Asked Questions

      @@ -36,9 +36,9 @@ We at DotKernel used some very basic debug bar:  queries, time spent , memory u
      - Why did DotKernel switch from its own debug bar to Scienta? + + Why did Dotkernel switch from its own debug bar to Scienta? +
      -

      DotKernel had been using a very basic debug bar showing queries, time spent, and memory used, but found Scienta to be way more complex and nicer than their internal code, so they switched to it and integrated it into the DotKernel code base.

      +

      Dotkernel had been using a very basic debug bar showing queries, time spent, and memory used, but found Scienta to be way more complex and nicer than their internal code, so they switched to it and integrated it into the Dotkernel code base.

      diff --git a/src/Blog/templates/page/blog-resource/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.html.twig b/src/Blog/templates/page/blog-resource/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.html.twig index 7665f2e2..3b31b5f7 100644 --- a/src/Blog/templates/page/blog-resource/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.html.twig +++ b/src/Blog/templates/page/blog-resource/zend-framework/zend-mail-and-zend-http-security-fixes-in-zend-framework-1-12-12.html.twig @@ -31,7 +31,7 @@ Also, the ZF  PEAR channel was updated to latest 1.12.12 release. pear upgrade zend/zend We strongly recommend that consumers of the Zend_Http and Zend_Mail components upgrade immediately. -Also, DotKernel Application Framework use intensively the Zend_Mail component. +Also, Dotkernel Application Framework use intensively the Zend_Mail component. If you cannot, you can download the patch separately and apply it to your ZF install: