#1109632 ITP: php-slim -- PHP micro framework for web applications and APIs

Package:
wnpp
Source:
wnpp
Submitter:
Ahmed Gamal
Date:
2025-08-10 18:23:01 UTC
Severity:
normal
Tags:
#1109632#5
Date:
2025-07-21 07:05:00 UTC
From:
To:
* Package name    : php-slim
  Version         : 3.12.3
  Upstream Author : Josh Lockhart <info@slimframework.com>
* URL             : https://github.com/slimphp/Slim
* License         : MIT
  Programming Lang: PHP
  Section         : php

Description:
 PHP micro framework for web applications and APIs

 Slim is a PHP micro framework that helps you quickly write simple yet
powerful web applications and APIs. It provides a minimal and fast
foundation with a focus on HTTP routing, middleware, and dependency
injection, making it ideal for building RESTful APIs and small-to-medium
web projects.

 Slim supports PSR-7 HTTP message interfaces, middleware architecture, and
easy integration with other PHP components. It is widely used in the PHP
ecosystem for its simplicity, flexibility, and performance.

Rationale:
 This package is required as a dependency for FOSSology, an open source
license compliance system. FOSSology uses PHP-based tools for source code
analysis and license detection, and Slim is used as a lightweight framework
for building web-based components and APIs within the project.

 The php-slim package is essential for:
 - Providing a robust and flexible web framework for FOSSology's web
components
 - Supporting RESTful API development and HTTP routing
 - Enabling middleware-based request/response processing
 - Ensuring compatibility with PSR-7 and modern PHP standards
 - Facilitating rapid development of web interfaces and services

Technical Details:
 - Requires PHP >= 5.5
 - Supports PSR-7 HTTP message interfaces
 - Middleware architecture for extensibility
 - MIT licensed for maximum compatibility
 - Well-documented and widely adopted in the PHP community

Dependencies:
 - php (>= 5.5)
 - Build dependencies: phpunit, php-codesniffer

The package will be maintained by Ahmed Gamal <ahmed.gamal9541@gmail.com>
as part
of the FOSSology packaging effort.

#1109632#12
Date:
2025-08-10 13:45:06 UTC
From:
To:
Please do some research before opening ITP/RFP bugs.
This package already exists in Debian.

#1109632#17
Date:
2025-08-10 22:13:08 UTC
From:
To:
Dear William,

I need to address the version compatibility issue that led to this ITP
filing.

VERSION INCOMPATIBILITY:
FOSSology requires php-slim version 3.12.3, while current Debian provides
Slim v4.x or v5.x. These major versions have significant breaking changes
that prevent FOSSology from functioning.

MAJOR BREAKING CHANGES BETWEEN VERSIONS:
Slim 3.x → 4.x introduced:
- Complete PSR-15 middleware rewrite (breaking middleware interfaces)
- Route handling mechanism changes
- Container dependency injection API overhaul
- Request/Response object handling modifications
- App class constructor and configuration changes

EVIDENCE FROM FOSSology INTEGRATION:
FOSSology's web components were built against Slim 3.12.3 APIs:
- Route definitions use Slim 3.x syntax
- Middleware implementations follow Slim 3.x patterns
- Container configuration expects Slim 3.x interfaces
- Request/response handling uses Slim 3.x methods

TECHNICAL REQUIREMENT:
Migrating FOSSology from Slim 3.x to 4.x+ would require:
- Rewriting all middleware components
- Updating route definitions throughout the codebase
- Modifying container configuration
- Testing all web interfaces for compatibility
- This is a major development effort beyond packaging scope

PROPOSED SOLUTION:
Package as php-slim-3 to provide legacy Slim 3.x compatibility alongside
newer versions, following Debian's pattern for maintaining incompatible
framework versions.

DEBIAN PRECEDENT:
Similar to how Debian maintains:
- Multiple Symfony versions (when applications require specific versions)
- Different framework versions for backward compatibility
- Legacy library versions when applications cannot migrate easily

JUSTIFICATION:
FOSSology is a mature license compliance system with established web
interfaces. Providing Slim 3.x enables its integration into Debian without
forcing extensive upstream rewrites.

REQUEST:
Could we reopen this ITP to discuss version-specific Slim packaging? This
would enable FOSSology's web components to function properly in Debian.

Best regards,
Ahmed Gamal
FOSSology Debian Packaging Team

Migration guide reference:
https://www.slimframework.com/docs/v4/start/upgrade.html

#1109632#22
Date:
2025-08-10 22:17:40 UTC
From:
To:
Dear William,

I need to reopen this ITP due to major breaking changes between Slim
Framework versions that prevent FOSSology from functioning.

MAJOR VERSION INCOMPATIBILITY:
FOSSology requires Slim Framework 3.12.3, but Debian provides Slim 4.x or
5.x. These major versions have extensive breaking changes that make
migration infeasible within packaging scope.

BREAKING CHANGES SLIM 3 → 4:
- Complete PSR-15 middleware rewrite (breaking all middleware)
- Route handling mechanism completely changed
- Container dependency injection API overhaul
- Request/Response object handling modified
- App class constructor and configuration changed

MIGRATION SCOPE:
Updating FOSSology to Slim 4.x+ would require:
- Rewriting all middleware components
- Updating route definitions throughout codebase
- Modifying container configuration
- Extensive testing of web interfaces
- Major development effort beyond packaging work

EVIDENCE:
FOSSology's web components, APIs, and routing are built against Slim 3.x
APIs and cannot function with newer versions without extensive code changes.

PROPOSED SOLUTION:
Package as php-slim-3 (version-specific naming) following Debian's pattern
for framework version incompatibilities.

PRECEDENT:
Similar to maintaining different versions when major framework changes
break backward compatibility.

OFFICIAL DOCUMENTATION:
Slim's own upgrade guide shows the extensive breaking changes:
https://www.slimframework.com/docs/v4/start/upgrade.html

REQUEST:
Please reopen to discuss version-specific Slim packaging for FOSSology
compatibility.

Best regards,
Ahmed Gamal
FOSSology Debian Packaging Team