Skip to content

Commit be00e55

Browse files
committed
Replace bad markers
1 parent 30c9d48 commit be00e55

58 files changed

Lines changed: 245 additions & 245 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

public/llms.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
# Dotkernel Light
22

3-
> Dotkernel Light is the technical blog for the Dotkernel headless PHP platform a PSR-15 compliant application built on Mezzio and Laminas components. It publishes architecture write-ups, how-tos, and release notes for the platform applications Dotkernel API, Admin and Queue and for the standalone Dotkernel Light skeleton.
3+
> Dotkernel Light is the technical blog for the Dotkernel headless PHP platform - a PSR-15 compliant application built on Mezzio and Laminas components. It publishes architecture write-ups, how-tos, and release notes for the platform applications - Dotkernel API, Admin and Queue - and for the standalone Dotkernel Light skeleton.
44

55
Content spans foundational PHP/middleware architecture (PSR-7, PSR-15, request lifecycle, dependency injection), practical how-tos (Doctrine migrations, CORS, authentication, caching), and the history/release notes of the Dotkernel ecosystem going back to 2008. Posts are organized by category and attributed to an author; URLs follow the pattern `/{category-slug}/{post-slug}/`.
66

77
## Docs
88

99
- [Blog](https://www.dotkernel.com/blog/): full list of posts, most recent first, paginated
1010
- [Categories](https://www.dotkernel.com/categories/): all categories with post counts
11-
- [About](https://www.dotkernel.com/about/): the team behind Dotkernel how the team works, its commitment to open source and the PHP community, and how it uses AI under guardrails
11+
- [About](https://www.dotkernel.com/about/): the team behind Dotkernel - how the team works, its commitment to open source and the PHP community, and how it uses AI under guardrails
1212
- [OSS Package Lifecycle](https://www.dotkernel.com/dotkernel-packages-oss-lifecycle/): support/maintenance status of Dotkernel's open-source packages
1313
- [Contact](https://www.dotkernel.com/contact/)
1414

1515
## Categories
1616

1717
## Dotkernel (19 posts)
1818

19-
*the core framework releases, caching, sessions, auth, WURFL/device detection*
19+
*the core framework - releases, caching, sessions, auth, WURFL/device detection*
2020

2121
- [Adding a CORS implementation to Zend Expressive](https://www.dotkernel.com/dotkernel/adding-a-cors-implementation-to-zend-expressive/): A guide on how to add a CORS implementation to an existing Dotkernel3 project using Tuupola's Cors Middleware package.
2222
- [Adding Composer support in your Dotkernel project](https://www.dotkernel.com/dotkernel/adding-composer-support-in-your-dotkernel-project/): The steps needed to add Composer support to a Dotkernel 1.x project, or 'composify' it.
@@ -53,7 +53,7 @@ Content spans foundational PHP/middleware architecture (PSR-7, PSR-15, request l
5353

5454
## How to's (14 posts)
5555

56-
*practical guides migrations, CORS, PSR-7, routing*
56+
*practical guides - migrations, CORS, PSR-7, routing*
5757

5858
- [CORS policy setup in Dotkernel using mezzio-cors](https://www.dotkernel.com/how-to/cors-policy-setup-in-dotkernel-using-mezzio-cors/): A walkthrough of fixing the classic 'No Access-Control-Allow-Origin header' CORS error in a Dotkernel application by installing and configuring the mezzio-cors package.
5959
- [Creating admin accounts in Dotkernel API](https://www.dotkernel.com/how-to/creating-admin-accounts-in-dotkernel-api/): How to create admin accounts in Dotkernel API v3 and later, using either the protected POST /admin endpoint or the admin:create terminal command.
@@ -86,7 +86,7 @@ Content spans foundational PHP/middleware architecture (PSR-7, PSR-15, request l
8686

8787
## Dotkernel API (10 posts)
8888

89-
*REST API package auth, content negotiation, OpenAPI*
89+
*REST API package - auth, content negotiation, OpenAPI*
9090

9191
- [API Client Migration: From Postman to Bruno](https://www.dotkernel.com/dotkernel-api/api-client-migration-from-postman-to-bruno/): Why the Dotkernel team is considering switching their API testing client from Postman to the offline-focused, Git-native Bruno.
9292
- [API Endpoint to Collect Client Errors](https://www.dotkernel.com/dotkernel-api/api-endpoint-to-collect-client-errors/): How Dotkernel API's error-report endpoint lets frontend clients submit and log errors that occur on the user's machine.

public/md-articles/best-practice/insert-update-delete-statements-with-zend-db.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ language: "en"
1313
## TL;DR
1414

1515
DML (Data Manipulation Language) statements change data values in database tables.
16-
This article, continuing the Zend_Db series, shows how the three primary DML statements INSERT, UPDATE, and DELETE are written in raw SQL and translated into Zend_Db method calls.
16+
This article, continuing the Zend_Db series, shows how the three primary DML statements - INSERT, UPDATE, and DELETE - are written in raw SQL and translated into Zend_Db method calls.
1717

1818
## Connecting to the database
1919

public/md-articles/best-practice/sql-queries-using-zend-db-select.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ $db = Zend_Db::factory('Pdo_Mysql', $dbConnect);
2323

2424
## SELECT query - WHERE clause
2525

26-
The following two classical SQL queries are equivalent the first is a simple comma join, the second uses INNER JOIN but the result is the same:
26+
The following two classical SQL queries are equivalent - the first is a simple comma join, the second uses INNER JOIN - but the result is the same:
2727

2828
```sql
2929
SELECT a.id, a.name, b.order_id

public/md-articles/best-practice/subqueries-with-zend-db.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ language: "en"
1212

1313
## TL;DR
1414

15-
Continuing the Zend_Db series, this article shows a more complex query combining COUNT(), LEFT JOIN, and GROUP BY across 3 tables, with a count taken from 2 different tables and how to build it, including a nested subquery, using Zend_Db.
15+
Continuing the Zend_Db series, this article shows a more complex query - combining COUNT(), LEFT JOIN, and GROUP BY across 3 tables, with a count taken from 2 different tables - and how to build it, including a nested subquery, using Zend_Db.
1616

1717
## The SQL query
1818

public/md-articles/best-practice/svn-export-in-a-virtual-host.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ Where:
3232
|---|---|
3333
| `-r revisionNumber` | Optional. Exports a specific revision. By default, the latest revision is used. |
3434
| `repositoryUrl` | The repository URL (e.g. `http://example.com/repos/project-name/trunk/`). Remember to add `/trunk/`, or change it appropriately for a branch or tag. |
35-
| `targetDirectory` `./` | The current directory. |
36-
| `targetDirectory` `./project-name` | Exports to the `project-name` subdirectory. |
37-
| `targetDirectory` `/var/www/vhosts/example.com/httpdocs` | Exports to an absolute path. |
35+
| `targetDirectory` - `./` | The current directory. |
36+
| `targetDirectory` - `./project-name` | Exports to the `project-name` subdirectory. |
37+
| `targetDirectory` - `/var/www/vhosts/example.com/httpdocs` | Exports to an absolute path. |
3838
| `--force` | Optional. By default SVN will not export into an existing directory; this overrides that. **Be careful, this option can overwrite files.** |
3939

4040
4. For more information, run `svn help export`.

public/md-articles/best-practice/using-like-wildcards-with-zend-db.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,4 @@ A: Build the first condition with quoteInto, then append further ones with quote
155155
", $pattern), as in the example matching 'gallery' or 'folder' in the source field.
156156

157157
**Q: How does NOT LIKE differ from LIKE?**
158-
A: NOT LIKE negates the pattern match for example, id NOT LIKE '1_' returns ids that don't start with 1 or don't have exactly 2 digits, and NOT LIKE conditions can be chained with AND to exclude several patterns at once.
158+
A: NOT LIKE negates the pattern match - for example, id NOT LIKE '1_' returns ids that don't start with 1 or don't have exactly 2 digits, and NOT LIKE conditions can be chained with AND to exclude several patterns at once.

public/md-articles/best-practice/zf-is-retired-laminas-mvc-is-retiring-consider-it-solved.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ language: "en"
1212

1313
## TL;DR
1414

15-
Laminas MVC is retiring, following Zend Framework and Apigility before it, but this doesn't mean everything with a Laminas logo is going away Mezzio, built on Laminas components, is the fully-functional successor.
15+
Laminas MVC is retiring, following Zend Framework and Apigility before it, but this doesn't mean everything with a Laminas logo is going away - Mezzio, built on Laminas components, is the fully-functional successor.
1616
Maintaining legacy MVC platforms is costly and risky long-term, since the architecture of today and tomorrow is middleware-based, and Apidemia offers a proven, phased migration process to move legacy platforms to Mezzio.
1717

1818
## A Bit of History
1919

2020
It all started with the announcement: Laminas MVC Is Retiring.
21-
Some people wrongfully thought everything with a Laminas logo is going away not so.
21+
Some people wrongfully thought everything with a Laminas logo is going away - not so.
2222
Read on for a bit of history about Zend and Laminas, what it means to migrate your platform, and why it's a decision that should not be taken lightly.
2323

24-
Laminas MVC is not even the first framework that has reached its end of life look at Zend Framework and Apigility.
24+
Laminas MVC is not even the first framework that has reached its end of life - look at Zend Framework and Apigility.
2525
Letting go of a flagship product is a difficult decision, but it's made easier when you leave a solid alternative in its wake.
26-
The developers who worked on Laminas MVC already had something better and fully-functional in place the Mezzio microframework, built using Laminas components.
26+
The developers who worked on Laminas MVC already had something better and fully-functional in place - the Mezzio microframework, built using Laminas components.
2727
It has itself gone through rigorous development and testing since being released in 2015, when it was known as Zend Expressive, then was renamed into Mezzio to get to its current state.
2828

2929
## What Is the Issue with Legacy Platforms?
@@ -62,11 +62,11 @@ Over the long run, the Apidemia team offers support and training.
6262

6363
This is the simplified task list:
6464

65-
- Code audit & migration strategy to understand the code and see what goes where.
66-
- Partial or full migration to Laminas or PSR-compliant frameworks, like Mezzio or Symfony this decision impacts both time to implement and cost, negotiated with the client.
67-
- Refactoring and decoupling legacy modules the old code must go and be replaced with the new.
68-
- Unit testing and CI/CD pipeline setup a vital step to ensure things function the same way in the destination platform.
69-
- Post-migration support and team training this step depends on the level of collaboration between the original developers and the Apidemia team, so the more closely they work together, the easier it is to onboard the devs for the long run.
65+
- Code audit & migration strategy - to understand the code and see what goes where.
66+
- Partial or full migration to Laminas or PSR-compliant frameworks, like Mezzio or Symfony - this decision impacts both time to implement and cost, negotiated with the client.
67+
- Refactoring and decoupling legacy modules - the old code must go and be replaced with the new.
68+
- Unit testing and CI/CD pipeline setup - a vital step to ensure things function the same way in the destination platform.
69+
- Post-migration support and team training - this step depends on the level of collaboration between the original developers and the Apidemia team, so the more closely they work together, the easier it is to onboard the devs for the long run.
7070

7171
## FAQ
7272

public/md-articles/dotkernel-api/api-client-migration-from-postman-to-bruno.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Bruno wins on offline access, version control via Git, performance, and (arguabl
1717

1818
## Why We Switched to the Offline-Focused Bruno
1919

20-
Every API developer needs a reliable client for testing and interacting with the API ideally free, able to store and share endpoint collections easily with a team, fast, and secure.
20+
Every API developer needs a reliable client for testing and interacting with the API - ideally free, able to store and share endpoint collections easily with a team, fast, and secure.
2121
Postman has been the team's go-to tool for years, but they are now considering Bruno, part of a general trend in the PHP community toward local-first, Git-native developer tools.
2222

2323
## Comparing Postman to Bruno
@@ -40,12 +40,12 @@ Bruno stores collections in Git, so everything is offline, which the team consid
4040

4141
Bruno is only one of several alternatives to Postman:
4242

43-
- Hoppscotch runs in the browser or as a PWA
44-
- Insomnia clear UI and large plugin ecosystem
45-
- HTTPie focuses on terminal-based workflows
46-
- Thunder Client built into Visual Studio Code
47-
- Apidog covers the whole API lifecycle
48-
- Yaak minimal and fast desktop client
43+
- Hoppscotch - runs in the browser or as a PWA
44+
- Insomnia - clear UI and large plugin ecosystem
45+
- HTTPie - focuses on terminal-based workflows
46+
- Thunder Client - built into Visual Studio Code
47+
- Apidog - covers the whole API lifecycle
48+
- Yaak - minimal and fast desktop client
4949

5050
Any of them can get the job done; the decision comes down to choosing a simple, reliable tool for the foreseeable future.
5151

public/md-articles/dotkernel/adding-a-second-caching-layer-to-wurfl-in-dotkernel-using-apc.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ WURFL also has cache providers for APC and memcache, which were tried, but the r
3131

3232
## The solution
3333

34-
The team realized their approach was wrong for their use case the WURFL entry for a device has lots of fields that weren't actually used.
34+
The team realized their approach was wrong for their use case - the WURFL entry for a device has lots of fields that weren't actually used.
3535

3636
The solution was adding a **second cache layer** on top of WURFL's own cache, which only cached the fields that were actually needed. This second layer used **APC**, storing arrays of data in **User Cache Entries**.
3737

public/md-articles/dotkernel/adding-windows-10-os-and-browser-detection-in-dotkernel-projects.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ This article is the upgrade guide for applying that icon patch.
2121
3. Extract the archive into a folder, e.g. `icons_patch`.
2222
4. Create a backup of your project before continuing (recommended).
2323
5. Copy all the files in the `icons_patch` folder into your Dotkernel project.
24-
6. You will be prompted to replace 2 files replace them and agree to merge the folders' content (other files will be added, not replaced).
24+
6. You will be prompted to replace 2 files - replace them and agree to merge the folders' content (other files will be added, not replaced).
2525
7. Clear the cache for changes to take effect, since the OS and browser XMLs are cached (see "Dotkernel Reserved Variable Names for Caching", the "Browser & OS" section).
2626
8. You can now delete the `icons_patch` folder, or keep it to patch another project.
2727

0 commit comments

Comments
 (0)