powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Автоматическая подгрузка классов в пространство языка.
40 сообщений из 40, показаны все 2 страниц
Автоматическая подгрузка классов в пространство языка.
    #38624153
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собираю библиотеку классов в пакет для упрощения установки.

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

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

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

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

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

не совсем понял что нужно?
что значит в пространстве языка?
пример приведите чего хотите добиться
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #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
Автоматическая подгрузка классов в пространство языка.
    #38624343
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624352
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whitediverНо есть же расширения языка которые не требуют прописывания include в явном виде.
ну опишите в __autoload откуда подгружать классы. и ненадо будет в явном виде прописывать include()

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


не помогла, все равно требует require прописать в явном виде :(
Чую написание so обертки единственное решение
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624857
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне помогла, все равно требует require прописать в явном виде :(


автор include_path string

Указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделенных двоеточием в Unix или точкой с запятой в Windows.
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624874
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ScareCrow, правильно, и более того после прописания конструкты типа
Код: php
1.
require 'mylib/MyClass.php';


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

ответьте на мой вопрос, вот вы чтото проинсталили

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

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

mylib/MyClass.php
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624880
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453, не знаю, как :) самому хочется узнать

Видел что классы PEAR используются без include .... вот так же хочу
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624901
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whitediver,

ТЫНЦ

и по подробней, это как библиотеки pear без инклуда.
то что в со, оно в пхп ини подключаеться, то что без со...ввиде пхп кода, там же тоже надо проинлудить то что хочешь !!!

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

--------
в препенд файле, обьявить автозагрущик, который сможет рыскать по твоей библиотеке...
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624906
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
whitediverВидел что классы PEAR используются без include .... вот так же хочуГде?
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624910
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453, думал :) беда в том что препенд может быть уже чем-то заполнен, очень часто в тестовых средах туда скрипт для подсчета покрытия вставляют
чую so без вариантов, глядишь и быстрее работать будет
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624917
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?, а я уже сомневаюсь
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624926
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
whitediver, потом юзер вам говорит: прежде чем ставить новую версию вашей библиотеки, хочу ее протестировать. Тестовый сайт на том же сервере, но в другом каталоге лежит. Как сделать, чтобы на основной сайт грузилась старая версия, а на тестовый новая?
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624933
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если тебя не смущает что твой класс будет цепляться вообще к любому выполняемому PHP скрипту, а не только там где надо, то можешь прописать путь к своему классу в php.ini в директиве auto_prepend_file

auto_prepend_file
Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the require function, so include_path is used.
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624944
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anvano, 15930538
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624953
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
?, да, обычные проблемы system-wide библиотек

но специфика работы такова, что под тестовое окружение выделяют отдельный сервер
собственно это и привело к необходимости запаковки кода в библиотеку
<пакетный менеджер> install myLib это сильно проще чем скопировать файлы и что-то прописать в окружении.... даже если это заскриптовать
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624957
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а не проще веб-инсталлятор написать, или скриптом?
тот же pyrus посмотреть
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38624961
whitediver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-k2-, особой разницы нет. Но так как в проекте кроме web\php части есть еще много нативных компонент проще использовать пакетный менеджер дистрибутива, для единообразия.

Ну а веб инсталятор написать можно, но для этого нужно хотя бы приблизительно понимать в каких именно чужих проектах будет использоваться либа.
...
Рейтинг: 0 / 0
Автоматическая подгрузка классов в пространство языка.
    #38625300
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
whitediverпро магические константы я возможно сам смогу вам рассказать много интересного :)
нука расскажите
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Автоматическая подгрузка классов в пространство языка.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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