За последние 24 часа нас посетили 16697 программистов и 1653 робота. Сейчас ищут 1358 программистов ...

Классы с MVC

Тема в разделе "PHP для новичков", создана пользователем cyber-sky, 4 авг 2010.

  1. cyber-sky

    cyber-sky Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    10
    Симпатии:
    0
    Я начал изучать ООП, и MVC подход. Пишу первый скрипт и не могу понять одну вещь.

    С помощью следующего кода, я хочу получить список всех файлов в каталоге, которые имеют расширение txt.
    В каталоге, где лежит данный скрипт есть несколько папок, внутри этих папок есть ещё txt файлы.
    Для того, чтобы найти эти файлы скриптом нужен рекурсивный запуск функции. В этом и проблема

    Код следующий:

    PHP:
    1. <?php
    2. Class Model
    3. {
    4.     function check_dirs($path)
    5.     {
    6.         if ($dir = opendir($path))
    7.         {
    8.             $i=0;
    9.             while (($file = readdir($dir)) !== false)
    10.             {
    11.             $i++;
    12.                    
    13.                 if($file !== '.' && $file !== '..')
    14.                 {
    15.                     if (is_dir("$path/$file/"))
    16.                     {
    17.                         $this->check_dirs("$path/$file/");
    18.                            
    19.                     } elseif (ereg(".txt", $file)) {
    20.                         echo $path.$file."<br>";
    21.                         $files_array[$i]=$path.$file;
    22. /*
    23. (1)
    24. прямо здесь использовать функции обработки
    25. и тогда будет контроллер. Или так не делают?
    26. */
    27.                     }
    28.                 }
    29.             }
    30.             closedir($dir);
    31. /*
    32. (2)
    33. если делаю так то получается, что функция не рекурсивная
    34.             return $files_array;
    35. */
    36.  
    37.         }  
    38.     }
    39. }
    40.  
    41.     $check=new Model();
    42.     print_r($check->check_dirs("."));
    43.  
    Если раскомментить пункт 2, то получится что функция не рекурсивная будет.
    Если использовать вариант 1, то вроде тоже что-то не то будет.

    Как я прочитал в теории, что в модели (а этот код, вроде как модель), не должно быть обработки данных.
    Вот я и парюсь, как так сделать, чтобы всё обработать в контроллере.


    Вообщем вопрос в следующем, в MVC подходе рекурсивные функции можно же реализовать, если да, то как ?
    Т.е в модели рекурсивная функция, в контроллере обработка результатов этой рекурсивной функции.
     
  2. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    под столом.
     
  3. phpdude

    phpdude Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    697
    Симпатии:
    0
    нет конечно! это же MVC!!! тут невозможны рекурсивные функции
     
  4. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    может не так поняли "обработку данных". в вашем случае как раз модель обрабатывает все папки и выдает результат контроллеру.