2016-08-12 4 views
-2

PHP-разработчики, которые используют функции класса в своих проектах, должны будут сделать много цирка для загрузки определенного класса перед их использованием. php __autoload() (будет устаревать в будущем), spl_autoload_register(), psr-0 & psr-4 стандартов для их автозагрузки.Почему загрузка классов php не так проста, как «импорт» java?

Функция __autoload() или в этом случае функция spl_autoload_register() (с путями всех классов в ней), определенная, например, в start.php, должна быть сначала включена в индекс или что-то на php-страницу, а затем выполните свою работу с загруженным объектом класса.

В psr-0 & psr-4 мы конфигурируем composer.json, установив путь autroad psr-0 или psr-4 или classmap к папке поставщика. Сделайте dump-autload, включите этот одиночный сгенерированный файл autoload.php в ваш php-файл и соглашение psr-4 «use» «namespace», сказанное, чтобы сделать нашу жизнь намного проще (чего нет).

В java, определите классы под пакетами, затем просто импортируйте требуемый класс и используйте его.

Мой вопрос: почему загрузка php классов не так проста, как пакеты java & import?

Я знаю, что могут быть некоторые трудности с реализацией, если это почти невозможно.

Немногие новые строки кода c, если не lakhs, определенно не замедлят интерпретатор php, чтобы помочь найти имена классов, упомянутые в ключе импортирования, и загрузить этот класс из пакетов, аналогичных java, вместо этих утомительных соглашений (spl_autoload_register(), psr-0, psr-4), которые, как предполагается, упрощают загрузку классов.

Я использовал java в большинстве своих проектов. поэтому я новичок в php, и вопрос может быть хорошо ожидаемым, что может показаться красивым noob. Ответы очень ценятся. Благодарю.

+0

Потому что вы обычно просто говорите 'include_once 'otherFile.php';'? –

+1

@rabbit, чувак, знаете ли вы, что include_once серьезно? Я думаю, мы хорошо прошли этап include_once в файле _autload(), spl_autoload_register(), файле автозагрузки composer.json. –

+2

Чувак, вы разместили выше, что хотите знать, как что-то сделать, вы дали нулевой код, вы даже не опубликовали свой проклятый код, чтобы показать, что вы делаете, а затем кто-то предложил использовать include_once, и вы напали на них. И тогда вы сидите там, задаваясь вопросом, почему ppl не помогает вам. –

ответ

1

Ну, это так.

PSR являются (в настоящее время) рекомендациями по реализации каркаса. То есть, если вы не пишете рамки или пакет, это на самом деле не нацелено на вас. Так получилось, что многие разработчики php любят следовать стандартам (в частности, PSR 1, 2 и 12).

Как все бывает, все примеры PSR-4 используют spl_autoload_register(), что является более удобным способом включения пакетов и классов без необходимости include_once. PSR-4 - это только рекомендация органа, отдельно от языка php, и относительно недавно, поэтому вы можете реализовать spl_autoload_register() любым способом.

Однако include_once по-прежнему является допустимым методом загрузки класса, и если вы спросите меня, часто может быть лучшим методом и (не являясь разработчиком Java), я предполагаю, что это так же просто, как эквивалент в Java.

+0

ха-ха. Спасибо. мой вопрос был действительно красивым noob.Я думаю, что @rabbit уже ответил на это. Но я не понял, что он сказал. Теперь вы поняли это. извините кролик. –

 Смежные вопросы

  • Нет связанных вопросов^_^