More than one class is a mess
TL;DR: Follow the separation of concerns principle and file organization
Problems
Code Organization
Coupling
Autoloading problems
Debugging
Version control and merge conflicts
Solutions
Declare a single class per file
Use name scoping
Context
In languages that declare classes using a file system, having one class per file is generally considered a best practice.
This approach helps improve code organization and maintainability and reduces potential issues.
You can organize namespaces into separate directories within your project structure.
This way, you can maintain a logical and efficient codebase while avoiding the issues of declaring multiple classes in a single file.
Sample Code
Wrong
<?
namespace MyNamespace;
class Class1 {
public function sayHello() {
echo "Hello from Class1!\n";
}
}
class Class2 {
public function sayHello() {
echo "Hello from Class2!\n";
}
}
Right
<?
namespace MyNamespace;
class Class1 {
public function sayHello() {
echo "Hello from Class1!\n";
}
}
<?