Что такое Пространство имен?

Если у вас есть доступ sudo к вашему Linux-серверу: - Затем выполните следующее

sudo crontab -e

. Откроется вкладка cron на вашем сервере.

Далее вам нужно сделать запись cron для файла, который вы хотите выполнить

00 00 * * * /usr/local/bin/php "path of the php file which you want to execute"

00 00 * * *, который будет запускать ваш cron ежедневно в полночь, то есть в 0 часов и 0 минут

19
задан Daniel A. White 1 August 2018 в 17:35
поделиться

6 ответов

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

В Ruby это достигается с помощью модулей.

14
ответ дан 30 November 2019 в 01:53
поделиться

Я собираюсь дать более банальное описание.

Допустим, у моей жены есть сестра по имени Сью, и я тоже. Как я могу отличить их друг от друга в разговоре? Используя свои фамилии («Сью Ларсон» против «Сью Джонс»). Последнее имя - это пространство имен .

Это, конечно, ограниченный пример, и в программировании потенциальных членов семьи может быть намного больше, чем в моем примере, поэтому вероятность коллизий выше. Пространства имен также являются иерархическими в некоторых языках (например, java), что не соответствует фамилиям.

Но в остальном это аналогичная концепция.

45
ответ дан 30 November 2019 в 01:53
поделиться

просто подумайте об этом как о логической группировке объектов и функций

3
ответ дан 30 November 2019 в 01:53
поделиться

Из php.net :

Что такое пространства имен? В самом широком смысле пространства имен определений - это способ инкапсуляция предметов. Это видно как абстрактное понятие во многих местах. Например, в любой операционной системе каталоги служат для группировки связанных файлов и выступать в качестве пространства имен для файлы внутри них. Как бетон Например, файл foo.txt может существовать в оба каталога / home / greg и в / home / other, но две копии foo.txt не могут сосуществовать в одном каталоге. Кроме того, для доступа к файлу foo.txt файл за пределами / home / greg каталог, мы должны добавить имя каталога к имени файла, используя разделитель каталогов, чтобы получить /home/greg/foo.txt. Это то же самое принцип распространяется на пространства имен в мир программирования.

Итак, как упоминал другой плакат, пространства имен можно использовать для группировки элементов вместе.

Чтобы понять, почему это может быть полезно, предположим, что вы хотите написать плагин, скажем, для Wordpress, и вы хотите создать класс с именем MyClass. Однако проблема в том, что вы не знаете, написал ли какой-либо другой разработчик еще один плагин Wordpress, используя класс с именем MyClass. Поэтому, чтобы избежать конфликтов имен, вместо этого вы называете свой класс MyPluginMyClass. Это раздражает, но, вероятно, позволяет избежать конфликтов имен.

Но затем выходит версия PHP 5.3, которая, наконец, поддерживает пространства имен (предположим, что Wordpress и все серверы, на которых он развернут, обновятся до PHP 5.3) . Теперь вы можете создать пространство имен, например «MyPlugin», и инкапсулировать в него «MyClass». Сделав это,

2
ответ дан 30 November 2019 в 01:53
поделиться

Википедия содержит короткую, но полезную статью о пространствах имен в целом, а также гораздо более подробную статью о пространствах имен в информатике с примерами для конкретных языков. & c.

Ключевым моментом является то, что, когда вы не можете «логически сгруппировать» имена в пространства имен, то есть у вас есть только одно недифференцированное «пространство», в котором находятся все имена, во избежание случайных конфликтов вы в конечном итоге неуклюже повторно реализуете рудиментальное пространство имен функциональность с помощью таких уловок, как префиксы имен и т. д. Например, «рисовать» для художника или стрелка означает нечто совершенно иное; если бы у вас не было отдельных пространств имен для артистов и стрелков, вы бы получили такие идентификаторы, как artist_draw и gunslinger_draw ,

2
ответ дан 30 November 2019 в 01:53
поделиться

Определение пространства имен из Википедии:

Пространство имен - это абстрактный контейнер или среда, созданная для хранения логической группы уникальных идентификаторов (т. Е. Имен). ...

Например, одно место, где вы можете найти пригодные для использования пространства имен, выглядит примерно так:

Вы определяете константу или переменную, или даже класс, который имеет общее имя. Если вы не хотите переименовывать эту константу / переменную / класс, но вам нужно иметь еще один с тем же именем, вы можете определить этот новый экземпляр в другом пространстве имен.

В ruby ​​модуль - это в основном то же самое, что и пространство имен находится в C ++.

например:

module Foo
  BAZ = 1
end

module Bar
  BAZ = 2
end

puts Foo::BAZ #=> 1
puts Bar::BAZ #=> 2

Итак, у вас есть константа BAZ , объявленная в двух модулях (также называемых пространствами имен в ruby)

16
ответ дан 30 November 2019 в 01:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: