Skip to main content

PHP Namespaces

Namespaces prevent class conflicts.

PocketMine heavily relies on namespaces.


Without namespaces:

class Player {}
class Player {}

Fatal error.


Namespace Example

namespace zyro\economy;

Class Example

namespace zyro\player;

class User {

}

Using Classes

use zyro\player\User;

Aliases

use pocketmine\player\Player
as PMPlayer;

Fully Qualified Name

\pocketmine\player\Player

Folder Structure

src/
└── zyro/
└── Main.php

PocketMine Example

namespace zyro;

use pocketmine\plugin\PluginBase;

PSR-4

Namespace:

zyro\utils

Folder:

src/zyro/utils

Best Practices

✅ One namespace per file.

✅ Match folders.

✅ Use imports.


Next Chapter

➡ Composer