15: Strip PHP from content management - #3395
Merged
Merged
Conversation
Removes PHP samples and the implement-it-in-code prose that introduced them across content management, including the field type reference. Deletes the content API and content management API pages, whose whole subject was PHP API usage. In the field type reference, the "PHP API field type" wrapper is unwrapped and its PHP-only subsections (Constructor, String representation) removed, while the Settings, Validation, Input expectations and Hash format tables are retained: they document field-definition configuration and the field's data shape, not PHP mechanics. Removes the GraphQL field type operations section from matrixfield.md, orphaned when ticket 07 deleted GraphQL (residue R1), and the taxonomy reindex console commands (residue R3). Removes 59 content_management/ entries from the invariant baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket 15 of the Cohesivo SaaS conversion. Base:
saas-batch-3.A reader working through content management sees only examples they can actually
use. Each page still describes its feature, its fields, its semantics and its
behaviour.
75 files changed, 3,771 deletions, 128 insertions.
Pages deleted outright
The content API and content management API pages — browsing, creating and
managing content, the bookmark, object state and section APIs — exist only to
document PHP API usage, so they are deleted rather than stripped.
The field type reference
25 of the 26 remaining pages wrapped everything in a section literally titled
## PHP API field type. Leaving that heading would contradict the conversionoutright, so the wrapper is unwrapped and its children promoted.
What was removed: the PHP samples, and the subsections that are pure PHP
mechanics —
ConstructorandString representation.What was kept: the
Settings,Validation,Input expectationsandHash formattables. These document field-definition configuration a contentmodeller actually sets and the field's serialized data shape — they are the
page's substance, not its PHP scaffolding. Bulk-deleting the wrapper would have
thrown all of that away, which is why this was not done as a blanket section
delete.
Heading depths were renormalized afterwards so no level is skipped and no
subsection is orphaned under the page title.
Verified safe first: zero inbound anchor links point into any field type
reference page, so restructuring their headings breaks nothing. The single
#hash-formatanchor in the repo is internal tocountryfield.mdand stillresolves.
Residue
matrixfield.mdcarried a whole## GraphQL field type operationssection with three ```graphql blocks. Ticket 07 deleted GraphQL, so it read as
a live feature. Removed — 155 lines, including both subsections.
php bin/console ibexa:reindexcommands intaxonomy.mdaregone, with the prose that introduced them. No UI replacement was invented:
whether reindexing returns as a UI action is an open product decision.
One dangling link the strip exposed
richtextfield.mdlinked tocreating_content.md#creating-content-item-draftto introduce a PHP example. With the example stripped and the target page
deleted, the sentence was orphaned prose pointing at a missing page — removed,
along with a "in PHP API and in REST API requests" mention reduced to REST.
Caught only by
--strict; no link inventory contained it.Verification
mkdocs build --strict→ exit 0.pytest -q→ 90 passed.content_management/still match``` php, aninclude_code/include_filemacro naming a.phpfile,bin/console, or acontent_management/entries removed from the invariant baseline.Known residue for a later authoring pass
The retained Properties tables still describe values in PHP terms — "The Value
class of this field type contains the following properties" with
$-prefixednames. These are data-shape documentation rather than code samples, so they pass
the invariant, but a future pass should restate them in REST terms.
🤖 Generated with Claude Code