Есть ли способ поместить zip-файл в PHP include_path? - PullRequest
0 голосов
/ 27 мая 2009

Копирование Zenf Framework повсюду - кошмар, поэтому у меня возникла идея, что развертывание будет быстрее, если весь фреймворк будет содержать только zip-файл. Есть способ сделать это? Это будет очень неэффективно?

Ответы [ 5 ]

2 голосов
/ 27 мая 2009

Начиная с версии 5.3 (хотя он также может быть установлен как модуль PECL) PHAR-файлы - http://pecl.php.net/phar & http://www.php.net/phar. Однако при запуске чего-то такого же большого, что и вся среда ZF, большая часть этого не использовалась бы большую часть времени, была бы излишней. Я думаю, что, вероятно, когда выйдет PHP5.3, значительная его часть будет также выпущена в виде файлов .PHAR для использования.

До тех пор нет. Копирование это, однако, просто разовая сделка, хотя. Вы также можете просто загрузить оригинальный файл .tgz и разархивировать его на сервере.

2 голосов
/ 27 мая 2009

Вы действительно должны развернуть его только один раз для каждого сервера, так что это не так уж страшно.

Но чтобы ответить на ваш вопрос: если вы имеете в виду, что можете просто включить один ZIP-файл, то нет. Однако для облегчения развертывания вы можете загрузить ZF в виде zip-файла на сервер, а затем извлечь его на удаленном компьютере. Это значительно быстрее, чем загрузка gazillion файлов по отдельности.

Редактировать: На самом деле, вы, вероятно, могли бы реализовать свою собственную версию Zend_Loader , которая знает, как обрабатывать zip-файлы. Я очень сомневаюсь, что это будет работать разумно, хотя. Скорее всего, это вызовет больше проблем, чем решит.

0 голосов
/ 03 июня 2009

Вы можете использовать расширение PHAR [1] для управления этим :) Расширение PHAR позволяет вам использовать что-то вроде:

include 'phar:///path/to/zend-latest.tgz/file.php';

PS: PHAR также может обрабатывать файлы .zip или .tgz.
Надеюсь, это поможет. Приветствия.

1: http://php.net/phar

0 голосов
/ 28 мая 2009

Если вы работаете в среде на основе Unix, добавление символической ссылки в папку Zend в папке библиотеки вашего проекта также будет работать:

% cd /your/project/library
% ln -s /path/to/ZendFramework/library/Zend .
0 голосов
/ 27 мая 2009

Я думаю, вам все еще нужно распаковать его, но его не нужно копировать в каждый проект. Допустим, у вас есть структура каталогов, например:

/htdocs
    /library
        /Zend
    /Project1
        [...]
        /public
            index.php
    /Project2
        [...]
        /public
            index.php

Затем просто отредактируйте путь включения в index.php для Zend_Framework из .. / library в:

../../library
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...