Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Автоматическая подгрузка классов в пространство языка. / 25 сообщений из 40, страница 1 из 2
24.04.2014, 11:01
    #38624153
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
Собираю библиотеку классов в пакет для упрощения установки.

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

К примеру как PEAR мы не прописываем require для того что бы использовать его классы они просто есть.

Плохой пример Zend. Автоматическая подгрузка классов в приложении происходит но только после первого подключения.
Код: php
1.
require_once 'Zend/Application.php';
...
Рейтинг: 0 / 0
24.04.2014, 12:03
    #38624295
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediver,

__autoload() ?
...
Рейтинг: 0 / 0
24.04.2014, 12:09
    #38624317
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
-k2-,

не правильный ответ
__autoload() он уже вызывается из пространства языка
...
Рейтинг: 0 / 0
24.04.2014, 12:11
    #38624322
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
Барон Мюнхаузен доставал себя из болота за волосы
...
Рейтинг: 0 / 0
24.04.2014, 12:12
    #38624326
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediver,

не совсем понял что нужно?
что значит в пространстве языка?
пример приведите чего хотите добиться
...
Рейтинг: 0 / 0
24.04.2014, 12:19
    #38624337
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
r u,
ну к примеру:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
/**
 * Zend_Application
 */
// !!!! включение идет средствами php require_once 'Zend/Application.php';

// Create application, bootstrap, and run
$application = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/main.ini');

$application->bootstrap()->run();



Изопропил,

Согласен что то есть такое. Но есть же расширения языка которые не требуют прописывания include в явном виде.
...
Рейтинг: 0 / 0
24.04.2014, 12:20
    #38624343
-k2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
...
Рейтинг: 0 / 0
24.04.2014, 12:23
    #38624352
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediverНо есть же расширения языка которые не требуют прописывания include в явном виде.
ну опишите в __autoload откуда подгружать классы. и ненадо будет в явном виде прописывать include()

если нужно несколько реализаций автоподгрузки, юзайте spl_autoload_register() ...

чем неустравиает?
...
Рейтинг: 0 / 0
24.04.2014, 12:37
    #38624389
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
-k2-,
Ничего страшного.
r u,
Тем что в этом случае придется явным образом подключать файл с функцией __autoload(). А именно этого хочется избежать.
Хочется уйти от необходимости подключать что либо в явном виде.
Просто поставили пакет и автоматом появились новые классы.
Думал попробовать прописать что-то в auto_prepend_file, но это не совсем решение так там может уже что-то быть.
...
Рейтинг: 0 / 0
24.04.2014, 12:48
    #38624421
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediverТем что в этом случае придется явным образом подключать файл с функцией __autoload(). А именно этого хочется избежать.
подругому никак. все так делают. и в чем тут проблема?
подключить один раз, а далее все будет автоматом.

или так: все равно же будет какойто файл-точка входа. с которого начнется выполнение скрипта?
вот в нем и опишите эту функцию __autoload. дополнительно делать вручную инклюдов не придется.

или вы просто незнаете как подгружать нужные вам файлы? подскаже. доступны магические константы __DIR__, __FILE__ и т.д. т.е. вы точно будете знать ГДЕ в данный момент находится выполнение скрипта. а зная эти пути - можно точно вычислить откуда брать остальные файлы с классами, чтобы работал автолоад.

в общем я проблемы невижу. либо вы чтото недоговариваетео начальной задаче. может там есть какието ограничения еще? если есть озвучте их и чем они обусловлены.
...
Рейтинг: 0 / 0
24.04.2014, 12:56
    #38624437
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediverК примеру как PEAR мы не прописываем require для того что бы использовать его классы они просто есть.
PEAR - оно не на php написано, это native extensions. Ну перепишите свою библиотеку с php на С и подгружайте как extension из php.ini :)
...
Рейтинг: 0 / 0
24.04.2014, 13:23
    #38624500
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
...
Рейтинг: 0 / 0
24.04.2014, 14:34
    #38624657
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
?,

Вообще-то PEAR на php это PECL нативный
...
Рейтинг: 0 / 0
24.04.2014, 14:36
    #38624662
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
ScareCrow,? как работает функция __autoload я вроде как представляю
...
Рейтинг: 0 / 0
24.04.2014, 14:46
    #38624692
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
r u,
про магические константы я возможно сам смогу вам рассказать много интересного :)

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

Использовать эту библиотеку будут люди с разные, очень разные, и гарантировать что они напишут __autoload нет ни единой возможности.
Более того есть даже сомнения в способности прописать require_once в нужном месте.
Вот по этому я и пытаюсь максимально упростить процесс подключения.
...
Рейтинг: 0 / 0
24.04.2014, 14:52
    #38624716
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediverСобираю библиотеку классов в пакет для упрощения установки.

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

К примеру как PEAR мы не прописываем require для того что бы использовать его классы они просто есть.

Плохой пример Zend. Автоматическая подгрузка классов в приложении происходит но только после первого подключения.
Код: php
1.
require_once 'Zend/Application.php';



вы учитывали что в пхп есть директива, include_path или както так, и папка с пиар там прописана ...ну тоесть вам кажеться что оно само подгружаеться, а на самом деле, пхп

ищет файл file.php , сначала в текущей директории, а потом по очереди в путях прописаных в директиве вышеуказаной.
...
Рейтинг: 0 / 0
24.04.2014, 14:57
    #38624734
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
alex564657498765453, поверьте я учел и это и многое другое, к сожалению нельзя ничего такого прописать в конфиг что б проинклюдилось безболезненно.

И моя задача именно в том что бы той строчки кода которую вы процитировали не было.
Что б класс сам прогружался.
...
Рейтинг: 0 / 0
24.04.2014, 15:10
    #38624765
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
вы определитесь или вы знаете пр оавтолоад или нет.
...
Рейтинг: 0 / 0
24.04.2014, 15:22
    #38624791
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediveralex564657498765453, поверьте я учел и это и многое другое, к сожалению нельзя ничего такого прописать в конфиг что б проинклюдилось безболезненно.

И моя задача именно в том что бы той строчки кода которую вы процитировали не было.
Что б класс сам прогружался.

это не строчка кода, а директива в файле пхп ини

повторю другими словами.

то что вам показалось, что само подключаеться - это не само, это стоит путь в этой директиве.

а чтобы пхп магически сам угадал что вы от него хотите, это извольте.
...
Рейтинг: 0 / 0
24.04.2014, 15:24
    #38624797
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediver,

может мы вас не поняли... давайте по другому

у меня есть мой сайт, хочу юзать ваш пакет, каким макаром мой пхп должен догадаться где найти ваш Class_super ???

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

мне кажеться мы не совсем вас поняли.
...
Рейтинг: 0 / 0
24.04.2014, 15:36
    #38624821
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
alex564657498765453, Во!! Конструктив!
вы делаете apt-get install superpackage ну или yum install superpackage

В php.ini прописывается что-то что позволяет языку решить проблему сопоставления ClassName и /someFolder/ClassName.php

Еще утром был уверен что данная проблема решена для каких-то библиотек.
Сейчас уже сомневаюсь.
...
Рейтинг: 0 / 0
24.04.2014, 15:36
    #38624823
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
ScareCrow, я да, а вы?
...
Рейтинг: 0 / 0
24.04.2014, 15:37
    #38624825
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediverr u,
про магические константы я возможно сам смогу вам рассказать много интересного :)

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

Использовать эту библиотеку будут люди с разные, очень разные, и гарантировать что они напишут __autoload нет ни единой возможности.
Более того есть даже сомнения в способности прописать require_once в нужном месте.
Вот по этому я и пытаюсь максимально упростить процесс подключения.

что же это за люди такие? которые даже __autoload не пропишут? :) Тем более если это в документации прописать...

А про PEAR... это разве не библиотека для подключения расширений? те самые расширения например у меня прописываются в "/etc/php5/cli/conf.d/"

А сами расширения представляют из себя скомпилированные библиотеки (на линуксе .so файлы).

Вы не этого случаем хотите добиться? Если этого, то в чём проблема? )) Создайте бинарник или скрипт для никсов, который закинет нужную библиотеку куда надо и пропишет её как расширение для пхп :)
...
Рейтинг: 0 / 0
24.04.2014, 15:39
    #38624830
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
whitediverScareCrow, я да, а вы?
тогда откуда у вас такой вопрос?
...
Рейтинг: 0 / 0
24.04.2014, 15:49
    #38624846
whitediver
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматическая подгрузка классов в пространство языка.
Програмёр, ДА!!! именно это я и хочу :)

Люди там очень, очень тяжелые, не русские и даже не индусы, совсем плохие.

Вот думал что тут кто со скриптом поможет ибо вставка в php.ini
Код: php
1.
 include_path=${include_path} ":/usr/share/php/mylib"


не помогла, все равно требует require прописать в явном виде :(
Чую написание so обертки единственное решение
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Автоматическая подгрузка классов в пространство языка. / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]