Обновление своего скрипта

Статус
В этой теме нельзя размещать новые ответы.

ar4ik

Постоялец
Регистрация
26 Ноя 2007
Сообщения
331
Реакции
100
Сейчас заканчиваю работу над скриптом, который будет работать на десятках сайтов(на каждом свой и со своими настройками). Естественно скрипт со временем будет изменятся, обновляться. Так вот, как лучше подойти к проблеме обновления скрипта, чтоб не копировать его всегда по новой на все сайты?
 
Вариант.

Вообще вариантов как именно скрипт

Все просто, если у тебя весь скрипт находится в одном файле. :)
Тогда вариант от меня:
  1. - Пишем тело скрипта(алгоритм) в папку с правами 777.
  2. - Делаем алго для загрузки скрипта, пример ниже.
  3. - Для удобства можно добавить к загрузчику проверку версий, т.к качать весь скрипт постоянно. А только при условии что версия изменилась.

Код:
PHP:
<?php
	$_CONF = array (
		'sfile'		=>	'tmp.inc',							# Имя файла со скриптом
		'vfile'		=>	'ver.txt',							# Файл с текушей	версией
		'check'		=>	'http://localhost/updt/vcheck.php',	# Где будем брать версию для проверки
		'update'	=>	'http://localhost/updt/last.txt',	# Откуда качаем новую версию
		'ctime'		=>	86400								# Через сколько времени проверяем обновление. (Один день)
	);

	if (filemtime($_CONF['sfile']) < (time()-$_CONF['ctime'])) # Сверяем время изменения файла с текущим
	{
		$v1 = file_get_contents($_CONF['vfile']);
		$v2 = file_get_contents($_CONF['check']);
		
		if ($v1 != $v2)
		{
			$new = file_get_contents($_CONF['update']);
			file_put_contents($_CONF['vfile'], $v2);
			file_put_contents($_CONF['sfile'] ,$new);
		}
		else # Версия скрипта не изменилась, обновляем время изменения файла нп текущее
			touch($_CONF['sfile']);
	}
	
	include $_CONF['sfile'];
?>
Набросал на коленке, не тестил, но думаю идея будет понятна. :)
 
Зер, ты как всегда с креативом :) .
Я юзать Hdiff или patch что мешает ? :) .
 
а может проще для фтп скрипт написать??
 
Он имеет ввиду скрипт который будет заходить на ftp и обновлять(перезаливать) скрипт.
Такое можно реализовать на основе phpwebftp.
 
Этот способ не подойдет, т.к. не всегда будет возможность (на клиентских сайтах) подключения по фтп.
 
Этот способ не подойдет, т.к. не всегда будет возможность (на клиентских сайтах) подключения по фтп.

ну если в скрипте модульная структура,то что мешает генерить xml с версиями модулей,и при апдейте забирать измененные файлы(модули) ещё тут можно пойти по принципу некоторых кмс и для каждого модуля писать свой мини инсталятор

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

p.s на самом деле за примерами далеко и ходить не надо,из того что могу вспомнить с такой фичей это Newsgrabber,Bitrix,Sbuiler
в ньюсграббере к примеру достаточно интересный подход юзается,может это и вам подойдет(файл updates.php)
 
Если скрипт не оч большой и много писать лень)) я бы тупо подключал основной функционал requre`ом с другого хоста.
тогда всё будет выглядеть примерно так
<? какой-то php код
require_once (Для просмотра ссылки Войди или Зарегистрируйся)
?>

минус в том что не на всех хостингах разрешают подключение внешних файлов

Вообще у Зера вариант оч хороший вариант, но насколько я понимаю тогда нужно будет выставить файлам разрешение на чтение, а в этом случае их сможет достать бот гугла(если я ошибаюсь поправьте меня) и проиндексировать что не оч безопасно.
Как с этим бороться? Шифрование исключаем.


ЗЫ код ещё можно пихать в базу но эт как-то извращённо :D
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху