Няколко точки...
PHP няма собствена инфраструктура за „импортиране“, като python, java или .net. Има няколко начина, по които библиотеките могат да се използват в PHP.
компилирайте ги в PHP двоичния файл. Това е най-напредналият начин и обикновено не е желателен, освен ако нямате много специални нужди.
Инсталирайте ги като PHP модули на сървъра и ги включете в PHP.ini. От гледна точка на PHP програмиста, тези разширения са част от PHP -- винаги налични. Просто е по-лесно да ги добавяте и премахвате, без да се налага да създавате отново самия PHP.
Инсталирайте PHP код някъде на сървъра и го включите() във вашия PHP скрипт.
Запазете копие на библиотека във вашия проект и го включете във вашия PHP скрипт.
--
На основно ниво кодът е или част от интерпретатора (статичен или динамичен), или е обикновен стар PHP код, който е включен()ен във вашия проект.
За вашите цели мога само да ви предложа да се придържате към стандартна дистрибуция на PHP (изберете добра операционна система Linux и използвайте нейния PHP). След това почти всички библиотеки, от които ще се нуждаете на ниво преводач, са налични като допълнителни пакети и сложността на това е оставена на тези, които го правят всеки ден.
На RedHat/Centos може да стартирате:
yum install php php-memcached php-gd php-pecl
--
По отношение на всички други видове библиотеки, които може да искате да използвате, най-вероятно е най-добре да приемете добра PHP рамка, която се грижи за всичко това вместо вас.
Някои примери са:
- Zend Framework
- CakePHP
- Codeigniter
- http://www.phpframeworks.com/
- и т.н...
(не в произволен ред, само тези, които са ми дошли на ум)
При условие, че сте възприели стандартния подход за използване на RPM или подобни за управление на компилираното в аспекти на PHP и разширения, тогава една добра солидна рамка ще се погрижи за включването на целия ви допълнителен код на PHP библиотека, от който се нуждаете.
Крайният резултат е, че се фокусирате върху предоставянето на продукт, а не върху цялата инфраструктура, която иначе би трябвало да научите и измислите.
--
php.ini се анализира и изпълнява при стартиране на PHP (всеки път за команден ред, веднъж на стартиране на сървър в apache). Той определя много настройки, включва много модули, конфигурира тези модули и т.н.
Всъщност можете да замените някои настройки в php.ini с функцията ini_set() в PHP. Това обаче е ефективно само за някои настройки. Други трябва да бъдат зададени преди стартирането на вашия скрипт.
Когато работите под apache, можете да добавите редове към директивите .htaccess
и <VirtualHost>
, които напълно заместват PHP.ini за тази директория/виртуален хост.
(моля, коригирайте моя синтаксис и премахнете тази бележка, ако е грешна)
<VirtualHost *>
ServerName www.example.com
DocumentRoot /home/joe/site/docroot
php_value include_path "/home/joe/site/php-code"
</VirtualHost>
--
В отговор на вашия #6 въпрос относно вашата собствена библиотека и най-добрия начин да я опаковате, предлагам ви първо да оцените нуждата от библиотеката. И ако наистина сте на път за нещо, тогава разберете най-често срещания начин, по който хората го правят. Ако това е проста библиотека, тогава .php файл с хубав уебсайт би бил достатъчен.
--
Може би малко безсмислено, но се надявам, че това ви насочва в правилната посока.
person
gahooa
schedule
09.12.2010
Не мога да позная какво прави SearchTemplate, но вие прилагате проекцията към външните критерии вместо към отделения.
Също така "основните" критерии трябва да са за TravelPlan, а не за Ticket.
С други думи:
Това предполага, че TravelPlan има свойство
- person eykanal   schedule 09.12.2010UserID
, което съответства на свойствотоUID
в Ticket.