Skip to content

15: Strip PHP from content management - #3395

Merged
mnocon merged 1 commit into
saas-batch-3from
saas-t15-strip-content
Sep 8, 2026
Merged

15: Strip PHP from content management#3395
mnocon merged 1 commit into
saas-batch-3from
saas-t15-strip-content

Conversation

@mnocon

@mnocon mnocon commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

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 conversion
outright, so the wrapper is unwrapped and its children promoted.

What was removed: the PHP samples, and the subsections that are pure PHP
mechanics — Constructor and String representation.

What was kept: the Settings, Validation, Input expectations and
Hash format tables. These document field-definition configuration a content
modeller 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-format anchor in the repo is internal to countryfield.md and still
resolves.

Residue

  • R1: matrixfield.md carried a whole ## GraphQL field type operations
    section with three ```graphql blocks. Ticket 07 deleted GraphQL, so it read as
    a live feature. Removed — 155 lines, including both subsections.
  • R3: the four php bin/console ibexa:reindex commands in taxonomy.md are
    gone, 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.md linked to creating_content.md#creating-content-item-draft
to 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.
  • Zero pages under content_management/ still match ``` php, an
    include_code/include_file macro naming a .php file, bin/console, or a
  • 59 content_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 $-prefixed
names. 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

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>
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Preview of modified files

Preview of modified Markdown:

@mnocon
mnocon merged commit fddd3fa into saas-batch-3 Sep 8, 2026
6 of 11 checks passed
@mnocon
mnocon deleted the saas-t15-strip-content branch September 8, 2026 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant