Skip to content

Archive This Package Completely #8

@alexstandiford

Description

@alexstandiford

The heart of the nomadic approach is that your code should be free to travel and adapt, like a digital nomad who can work from anywhere. The existence of a core package actually contradicts this fundamental principle. Here's why:

  1. Independence from Platforms
    When we have a core package, we're implying that PHPNomad is itself a platform that needs to be integrated with. This creates exactly the kind of coupling we're trying to avoid. Your code shouldn't need to integrate with PHPNomad - PHPNomad should be helping your code integrate with other platforms.
  2. True Adaptability
    The core package suggests there's a "PHPNomad way" of doing things, but that's not what we want. Instead, we want to provide patterns and tools that help developers write code that can easily move between different environments. It's about approach, not implementation.
  3. Reducing Complexity
    By removing the core package, we eliminate an unnecessary layer of abstraction. Rather than having code that integrates with PHPNomad which then integrates with platforms, we can have code that directly integrates with platforms using nomadic patterns.
  4. Embracing Platform Diversity
    Without a core package, we're making it clear that PHPNomad isn't trying to replace or override platform-specific features. Instead, it's about helping developers write code that can work alongside these features while maintaining portability.

The solution is to break down the core package into focused, independent tools that developers can use as needed. Each piece should solve a specific problem in making code more portable, without creating dependencies on PHPNomad itself.

Think of PHPNomad more like a travel guide than a destination. It should show you how to write code that can travel well, not be a place your code needs to visit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions