Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,23 @@
"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."
}
},
{
"@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."
}
},
{
"@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."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
]
}
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
]
}
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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." } }
]
}
Expand Down
Loading