# Синтаксис пространств имен

Чтобы задать классу пространство имен, нужно первой строчкой файла, в котом хранится этот класс написать команду `namespace`, а после нее через пробел - название этого пространства.

Если класс относится к какому-нибудь пространству имен, то для создания объекта класса нужно будет указать не только имя класса, но и его пространство имен, разделенные обратным слешем. Давайте посмотрим на примере.

Пусть у нас есть класс `Page`, не относящийся ни к какому пространству имен. Тогда объект этого класса мы создадим следующим образом:

`<?php $page = new Page; ?>`

Пусть теперь этот класс принадлежит пространству имен `Admin`. В этом случае объект этого класса мы будем создавать уже вот таким образом:

`<?php $page = new \Admin\Page; ?>`

## Пример

Давайте разнесем классы для юзеров и классы для админа по разным пространствам имен, чтобы избежать описанных выше конфликтов классов.

Для класса `Page` из файла `/admin/page.php` укажем пространство имен `Admin`:

`<?php namespace Admin; class Page { } ?>`

А для класса Page из файла `/users/page.php` укажем пространство имен `Users`:

`<?php namespace Users; class Page { } ?>`

Давайте теперь в файле `/index.php` создадим объект одного и второго класса `Page`:

`<?php require_once '/admin/page.php'; require_once '/users/page.php'; $adminPage = new \Admin\Page; $usersPage = new \Users\Page; ?>`

## Практические задачи

Пусть у вас есть папка `core` и папка `project`. В каждой из папок есть свой класс `Controller`. Сделайте так, чтобы эти классы принадлежали разным пространствам имен. В файле `index.php` создайте объекты одного и второго классов.

← →
↑