В чём суть
Класс (или группа классов) сначала вычищает полностью всё что находится в каталоге home, патом создаёт там 3 основных каталога и по ним раскидывает ещё 30, в результате получается дерево каталогов, затем запускается функция, которая создаёт внутри каждого из этих 30 каталогов какой-то свой файл, и забивает в него (в файл) нужный код.
Вот как получилось после оптимизации
$host=$_SERVER['DOCUMENT_ROOT'];
//эта функция удаляет старые каталоги из корня сайта
function dd($fileremove)
{if (file_exists($fileremove))
{chmod($fileremove,0777);
if (is_dir($fileremove))
{$handle = opendir($fileremove);
while($filename = readdir($handle))
if ($filename != "." && $filename != "..")
{dd($fileremove."/".$filename);}
closedir($handle);
rmdir($fileremove);
}
else
{unlink($fileremove);}
}
}
//эта функция создаёт новую структуру каталогов
function add($dir){
if(is_dir($dir))
{echo '<font color=yellow>Директория</font>
<b>'.$dir.'</b>
<font color=yellow>уже существует</font><br>';}
else
{mkdir($dir, 0644);
if(is_dir($dir))
{echo '<font color=green>Директория</font>
<b>'.$dir.'</b>
<font color=green> успешно обновлена</font><br>';}
else
{echo 'Ошибка создания директории '.$dir.'<br>';}
}}
//эта функция создаёт файлы в этих каталогах
function addf($fl,$mytext){
$fp = fopen($fl, "a");
ftruncate($fp, 0);
$test = fwrite($fp, $mytext);
if ($test) echo '<font color=green>Данные в файле </font><b>'.$fl.'</b><font color=green> успешно изменены.</font><br>';
else echo '<font color=red>Ошибка при записи в </font><b>'.$fl.'</b><br>';
fclose($fp);
}
Запускается всё вот так
$dir = $host."/system";if (file_exists($dir)){dd($dir); add($dir);}else{add($dir);}
$dir = $host."/system/core";if (!file_exists($dir)){add($dir);}else{dd($dir); add($dir);}
$dir = $host."/system/core/admin";if (file_exists($dir)){dd($dir); add($dir);}elseif(!file_exists($dir)){add($dir);}
только таких строк там 30
а дальше под каждый файл, который нужно создать пишется вот такой фрагмент кода
name = $host.'/system/core/admin/admin.inc.php';
$content = "<?session_start();?>
<?require_once \$_SERVER['DOCUMENT_ROOT'].\"/system/Includes/global.inc.php\";dbconnect();?>";
addf($name,$content);
и после всех этих манипуляций файл index.php который всё это натворил, создаёт БД, забивает её и перезаписывает сам себя.
Как из этого всего создать класс, который был бы маленький, аккуратный и симпатичный =))))
Ну вот допустим пишу я
class Setup {
function dd($fileremove)
{if (file_exists($fileremove))
{chmod($fileremove,0777);
if (is_dir($fileremove))
{$handle = opendir($fileremove);
while($filename = readdir($handle))
if ($filename != "." && $filename != "..")
{dd($fileremove."/".$filename);}
closedir($handle);
rmdir($fileremove);
}
else
{unlink($fileremove);}
}
}
function add($dir){
if(is_dir($dir))
{echo '<font color=yellow>Директория</font>
<b>'.$dir.'</b>
<font color=yellow>уже существует</font><br>';}
else
{mkdir($dir, 0644);
if(is_dir($dir))
{echo '<font color=green>Директория</font>
<b>'.$dir.'</b>
<font color=green> успешно обновлена</font><br>';}
else
{echo 'Ошибка создания директории '.$dir.'<br>';}
}}
function addf($fl,$mytext){
$fp = fopen($fl, "a");
ftruncate($fp, 0);
$test = fwrite($fp, $mytext);
if ($test) echo '<font color=green>Данные в файле </font><b>'.$fl.'</b><font color=green> успешно изменены.</font><br>';
else echo '<font color=red>Ошибка при записи в </font><b>'.$fl.'</b><br>';
fclose($fp);
}
}
Дальше что?
Как заставить этот "класс" (комлект трёх функций) принять данные и правильно их обработать?
Спустя 8 минут, 39 секунд (16.11.2011 - 15:34) sergeiss написал(а):
Ты можешь объяснить, зачем тебе создавать класс ради этой задачи?
Спустя 6 минут, 29 секунд (16.11.2011 - 15:40) Guest написал(а):
Простите,но то что Вы написали называется "говно-кодом"

Спустя 2 минуты, 57 секунд (16.11.2011 - 15:43) McLotos написал(а):
Guest
Я знаю как это называется! =)))))
Вот я и пытаюсь на это примере медленно, но верно перебраться на ООП
Я знаю как это называется! =)))))
Вот я и пытаюсь на это примере медленно, но верно перебраться на ООП
Спустя 1 час, 17 минут, 23 секунды (16.11.2011 - 17:01) caballero написал(а):
Цитата |
Вот я и пытаюсь на это примере медленно, но верно перебраться на ООП |
Говнокод не зависит от того ООП это или нет.
Спустя 45 минут, 27 секунд (16.11.2011 - 17:46) twin написал(а):
Цитата (caballero @ 16.11.2011 - 14:01) | ||
Говнокод не зависит от того ООП это или нет. |
Я бы больше сказал. В таком виде ООП говнокод куда запашистее простого получится.
McLotos
Не майся дурью, пиши пока процедурно. Рановато еще.
Спустя 12 часов, 54 минуты, 15 секунд (17.11.2011 - 06:41) McLotos написал(а):
twin
Спасибо. Просто процедуры уже поднадоели. Ладно, пойду на ирбис, покопаюсь там.
Спасибо. Просто процедуры уже поднадоели. Ладно, пойду на ирбис, покопаюсь там.

Спустя 3 часа, 44 минуты, 50 секунд (17.11.2011 - 10:25) SlavaFr написал(а):
Цитата (McLotos @ 17.11.2011 - 03:41) |
Просто процедуры уже поднадоели. Ладно, пойду на ирбис, покопаюсь там. |
начинай так же изучать форматирование кода. Блогадоря тому, что твои вопроссы в большенстве своем можно было решить без опубликования кода, людям не особенно приходилось его читать, но со верменем прийдется действительно в него вникать и ты должен зделать твой код более читабельным.
К стате во всех известных ide есть возможость автоматически отформатировать код.
согласись, что это:
function dd($fileremove)
{
if (file_exists($fileremove))
{
chmod($fileremove, 0777);
if (is_dir($fileremove))
{
$handle = opendir($fileremove);
while ($filename = readdir($handle))
{
if ($filename != "." && $filename != "..")
{
dd($fileremove . "/" . $filename);
}
}
closedir($handle);
rmdir($fileremove);
}
else
{
unlink($fileremove);
}
}
}
удобнее читать чем это:
function dd($fileremove)
{if (file_exists($fileremove))
{chmod($fileremove,0777);
if (is_dir($fileremove))
{$handle = opendir($fileremove);
while($filename = readdir($handle))
if ($filename != "." && $filename != "..")
{dd($fileremove."/".$filename);}
closedir($handle);
rmdir($fileremove);
}
else
{unlink($fileremove);}
}
}
С Уважением
Спустя 1 час, 3 минуты, 11 секунд (17.11.2011 - 11:29) McLotos написал(а):
Ну да, согласен. Нужно покопаться в Notepad++ и посмотреть там эту опцию. Спасибо!
Спустя 14 минут, 3 секунды (17.11.2011 - 11:43) twin написал(а):
Цитата (McLotos @ 17.11.2011 - 08:29) |
Ну да, согласен. Нужно покопаться в Notepad++ и посмотреть там эту опцию. Спасибо! |
Не надо копаться. Надо привыкать так писать.
Спустя 2 минуты, 43 секунды (17.11.2011 - 11:45) McLotos написал(а):
В последнее время слишком ко многим вещам приходится привыкать =)
И я никак не могу понять как работать с классами.
И я никак не могу понять как работать с классами.

Спустя 1 час, 25 минут, 27 секунд (17.11.2011 - 13:11) twin написал(а):
Цитата (McLotos @ 17.11.2011 - 08:45) |
В последнее время слишком ко многим вещам приходится привыкать =) И я никак не могу понять как работать с классами. ![]() |
Ничего страшного))) Я сам до конца не знаю, однако это не мешает.
Более того, я очень мало знаю людей, кто действительно знает, как это делается по настоящему.
Спустя 10 минут, 58 секунд (17.11.2011 - 13:22) McLotos написал(а):
Хммм... нужно будет попробовать накатать какой-нибудь класс, хотябы из тех функций, которые уже готовы. Позже выложу на растерзание публике =)
Спустя 1 час, 1 минута, 23 секунды (17.11.2011 - 14:23) McLotos написал(а):
Говорят "если долго мучиться, что-нибудь получится".
А я вот весь день пытался написать хотябы 1 простейший класс, понял что у меня мозг не вопринимает эту структуру, и решил пока остаться на функциональном программировании. Может по ходу пьесы я и буду пробовать писать классы, но чувствую это будет очень не скоро.
А я вот весь день пытался написать хотябы 1 простейший класс, понял что у меня мозг не вопринимает эту структуру, и решил пока остаться на функциональном программировании. Может по ходу пьесы я и буду пробовать писать классы, но чувствую это будет очень не скоро.

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки