PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 13
Fedak.o.b Отправлено: 27 Сентября, 2012 - 21:30:51 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
KingStar пишет:
следует разбить весь класс на методы, что если тебе понадобится имя контроллера??? либо отдельно проверить правило??? а как быть если я не передам контроллер или метод???

Согласен!

---> либо отдельно проверить правило???
Моя проблема щас стоит в составление как раз правил (не хочу налажать).
Fedak.o.b Отправлено: 27 Сентября, 2012 - 20:39:32 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
KingStar пишет:
1. если нужен GET - почему не ссылка???
2. если нужна форма - что мешает использовать POST???

Согласен!))

Ребята, посмотрите к моим вопросам Улыбка
Fedak.o.b Отправлено: 27 Сентября, 2012 - 20:09:23 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
Мой Router.php

PHP:
скопировать код в буфер обмена
  1.  
  2. class Router
  3. {
  4.     public function run()
  5.     {
  6.          /**
  7.           * URL pattern default routes:
  8.           * http://example.com/controller/action/param1/param2/param3
  9.           */
  10.         $this->routes = array(    
  11.             '^(.*)$' => 'category/view/$1',
  12.             '^/shop/(.*)$' => 'shop/category/$1'
  13.         );
  14.  
  15.         $uri = $this->Request->getURI();
  16.        
  17.         // Пытаемся применить к нему правила из конфигуации.
  18.         foreach($this->routes as $pattern => $route)
  19.         {
  20.             // Если правило совпало.
  21.             if(preg_match("~$pattern~", $uri))
  22.             {
  23.                 // Получаем внутренний путь из внешнего согласно правилу.
  24.                 $internalRoute = preg_replace("~$pattern~", $route, $uri);
  25.  
  26.                 // Разбиваем внутренний путь на сегменты.
  27.                 $segments = explode('/', $internalRoute);
  28.                
  29.                 // Первый сегмент — контроллер.
  30.                 $controller_name = array_shift($segments);
  31.                 // Второй сегмент— действие (метод)
  32.                 $action_name = array_shift($segments);
  33.                 // Остальные сегменты — параметры.
  34.                 $parameters = $segments;
  35.  
  36.  
  37.                 print_r($controller_name);
  38.                 print_r($action_name);
  39.                 print_r($parameters);
  40.                
  41.                 // Инклудим файл с классом контроллера
  42.                 $controller_file = strtolower($controller_name) . EXT;
  43.  
  44.                 // Путь к контролеру модуля
  45.                 $controller_path = $module_path = 'modules' . SEP . $controller_name . SEP . $controller_file;
  46.  
  47.                 if (file_exists($controller_path))
  48.                 {
  49.                     require_once $controller_path;
  50.                 }
  51.                 else
  52.                 {
  53.                    
  54.                 }
  55.                
  56.                 // Cоздаем контроллер
  57.                 $controller = new $controller_name;
  58.                 $action = $action_name;
  59.  
  60.                 if (method_exists($controller, $action))
  61.                 {
  62.                     // Если есть передаваемые параметры для метода
  63.                     if ($parameters)
  64.                     {
  65.                         call_user_func_array(array($controller, $action), $parameters);
  66.                     }
  67.                     // Если есть НЕТ передаваемые параметры для метода
  68.                     else
  69.                     {
  70.                         $controller->$action();
  71.                     }
  72.                 }
  73.                 else
  74.                 {
  75.                    
  76.                 }
  77.  
  78.                 break;
  79.                
  80.             }
  81.            
  82.            
  83.         }
  84.     }
  85. }
  86.  
  87. $router = new Router();
  88. $router->run();
  89.  
Fedak.o.b Отправлено: 27 Сентября, 2012 - 20:06:23 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
Может я чего то не не понял, каким таким образом это должно работать как роутер и перенаправлять ))) туда куда нужно
Fedak.o.b Отправлено: 27 Сентября, 2012 - 19:55:07 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
Okula пишет:
Если использовать ЧПУ то придётся отказаться от передачи данных через форму меодом GET, так как они будут автоматически дописываться в адрес портя всю концепцию.
Как этого избежать?

Дописывать GET параметры которые портят всю картину нужно в большинстве тогда когда сайт использует какие то фильтра, скажем в интернет-магазине. А то если писать под ниж правила голова может лопнуть Улыбка
Fedak.o.b Отправлено: 27 Сентября, 2012 - 19:40:23 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
Мой .htaccess
PHP:
скопировать код в буфер обмена
  1.  
  2. AddDefaultCharset UTF-8
  3.  
  4. RewriteEngine On
  5.  
  6. RewriteCond %{REQUEST_FILENAME} !-f
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8.  
  9. RewriteRule !^(p/|favicon\.ico|robots\.txt|sitemap\.xml|sitemap\.xml\.tgz) index.php [L]
  10.  

(Добавление)
Fedak.o.b пишет:
www[dot]site[dot]com/index.php?cid=12

Для современных систем это не приветствуется.Современный аналог моего может выглядит:

1. www[dot]site[dot]com/novosti_i_akcii/vuboru_mera
(Где novosti_i_akcii категория, vuboru_mera - страница или та же категория)

2. www[dot]site[dot]com/auth
(Где auth категория, или страница или модуль скажем авторизации)

Таким образом достает вопрос. Как же составить регулярные чтоб распознаватель какой екземпляр модуля нужно создавать и какой контролер модуля нужно подгружать.


Вот думаю не ужели нужно делать проверку на существования такой папки если папка есть тогда продуем создать экземпляр класса и загрузить контролер модуля, ели нет тогда проверяем есть ли такие записи в таблицах категории или страниц.
Поправьте если не верно мыслю Улыбка
Fedak.o.b Отправлено: 27 Сентября, 2012 - 19:36:49 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
KingStar пишет:
впревые слышу, открой htaccess любого фреймворка, по твоим словам они все утарели??? значит в ногу со временем у нас только один ты идешь)))


Я имею виду такой пример:

.htaccess
PHP:
скопировать код в буфер обмена
  1.  
  2. #...
  3. # Каталог товаров
  4. RewriteRule ^catalog/([^/]+)/?$ index.php?module=ProductsView&category=$1 [L,QSA]
  5. RewriteRule ^catalog/([^/]+)/([^/]+)/?$ index.php?module=ProductsView&category=$1&brand=$2 [L,QSA]
  6.  
  7. RewriteRule ^products/([^/]+)/?$        index.php?module=ProductView&product_url=$1 [L,QSA]
  8. RewriteRule ^products/?$        index.php?module=ProductsView [L,QSA]
  9.  
  10. RewriteRule ^brands/([^/]+)/?$  index.php?module=ProductsView&brand=$1 [L,QSA]
  11. RewriteRule ^brands/([^/]+)/page_([^/]+)/?$     index.php?module=ProductsView&brand=$1&page=$2 [L,QSA]
  12.  
  13. # Поиск товаров
  14. RewriteRule ^search/([^/]+)/?$  index.php?module=ProductsView&keyword=$1 [L,QSA]
  15. RewriteRule ^search/?$  index.php?module=ProductsView [L,QSA]
  16.  
  17. # Блог
  18. RewriteRule ^blog/([^/]+)/?$    index.php?module=BlogView&url=$1 [L,QSA]
  19. RewriteRule ^blog/?$    index.php?module=BlogView [L,QSA]
  20. #...
  21.  

.....
Fedak.o.b Отправлено: 27 Сентября, 2012 - 19:25:14 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
Хорошо ребята)), хватит разводить сплетни )

Если такая активность на ответы хотелось бы тогда расширить данную тему.

Думаю начать будет хорошо с самого начала =)

-------------------------------- -------------------------------- ----------------------------
Index.php - Главный файл через через него должно все проходить. Понятно что в нем хорошо содержать константы и другие настройки. Также он должен подключать через инклуд файл-класс Router.
-------------------------------- -------------------------------- ----------------------------
Router.php - служить для обработки адресной строки и с полученных данных создавать экземпляр класса, загружать необходимые файлы (скажем контроллер модуля)

А теперь вопрос. Думаю у всех он когда то возникал.
Какими макаром должен обрабатывать данные URL.
- Можно через регулярные выражения создавать правила в .htaccess (слышал что этот метот застарел, не знаю правда ли это)
- Можно те же правила с регулярным выражениям создавать в файле класса Router
- А можно и без правил обойтись.

Тут думаю дело уже будет зависит от дальнейшей структуры построения системы.
-------------------------------- -------------------------------- ----------------------------

Я выбрал второй пункт. Хочу это тему больше раздутость потому что в принципе так званные чпу, нужны не так программистам, а сеошникам. Ну и настало время что без этого не обойтись.

Я решил не отставать и все переделать свою систему.
Моя первая скажем цмс нормально справляется с загрузкой категорий и страниц урл вида:

www[dot]site[dot]com/index.php?cid=12

Для современных систем это не приветствуется.Современный аналог моего может выглядит:

1. www[dot]site[dot]com/novosti_i_akcii/vuboru_mera
(Где novosti_i_akcii категория, vuboru_mera - страница или та же категория)

2. www[dot]site[dot]com/auth
(Где auth категория, или страница или модуль скажем авторизации)

Таким образом достает вопрос. Как же составить регулярные чтоб распознаватель какой екземпляр модуля нужно создавать и какой контролер модуля нужно подгружать.

Начал делать писать регулярные и практически сразу остановился, зашел в тупик Недовольство, огорчение
PHP:
скопировать код в буфер обмена
  1.  
  2. // ...
  3. $this->routes = array(    
  4.     '^(.*)$' => 'category/view/$1',
  5.     '^/shop/(.*)$' => 'shop/category/$1'
  6. );
  7. // ...
  8.  


Как в моем случае написать нормальные маски для обработки и делаю все ли я верно ?
Fedak.o.b Отправлено: 26 Сентября, 2012 - 10:38:54 • Тема: Помогите построить ядро на MVC • Форум: Объектно-ориентированное программирование

Ответов: 51
Просмотров: 10612
Есть необходисомость построить ядро системы на MVC.

По моем понимание MVC построил ядро так:

index.php
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if (version_compare(phpversion(), '5.1.0', '<') == true) { die ('PHP5.1 Only'); }
  4.  
  5.  
  6. // The PHP file extension
  7. define('EXT', '.php');
  8.  
  9. //
  10. define ('SEP', DIRECTORY_SEPARATOR);
  11.  
  12. // Узнаём путь до файлов сайта
  13. $sitepath = realpath(dirname(__FILE__) . SEP . '..' . SEP) . SEP;
  14.  
  15. //
  16. define ('SITEPATH', $sitepath);
  17.  
  18. require_once 'core' . SEP . 'Controller' . EXT;
  19.  



Controller.php
PHP:
скопировать код в буфер обмена
  1. require_once 'core' . SEP . 'Gent' . EXT;
  2.  
  3. require_once 'core' . SEP . 'Router' . EXT;
  4.  
  5. class Controller extends Router
  6. {
  7.     public function __construct()
  8.     {
  9.         parent::__construct();
  10.        
  11.     }
  12. }
  13.  
  14. new Controller();



Router.php
PHP:
скопировать код в буфер обмена
  1.  
  2. class Router extends Load
  3. {
  4.     public $module_name;
  5.    
  6.     public function __construct()
  7.     {
  8.  
  9.         $this->module_name= $this->Request->getController();
  10.         //$this->router_action = $this->request->getAction();
  11.  
  12.         //
  13.         $this->loadController->($this->module_name);
  14.     }
  15. }
  16.  



Load.php
PHP:
скопировать код в буфер обмена
  1.  
  2. /**
  3.  * Класс автоматическое создает объект
  4.  */
  5.  
  6. require_once 'core' . SEP . 'Registry' . EXT;
  7.  
  8. class Load extends Registry
  9. {
  10.     private static $objects = array();
  11.    
  12.     public function __construct() {}
  13.  
  14.     /**
  15.      * Магический метод, создает нужный объект
  16.      */
  17.     public function __get($name)
  18.     {
  19.         // Если такой объект уже существует, возвращаем его
  20.         if(isset(self::$objects[$name]))
  21.         {
  22.             return(self::$objects[$name]);
  23.         }
  24.        
  25.         $class_name = $name;
  26.        
  27.         include 'core' . SEP . $class_name . EXT;
  28.  
  29.         self::$objects[$name] = new $class_name();
  30.  
  31.         // Возвращаем созданный объект
  32.         return self::$objects[$name];
  33.     }
  34. }
  35.  



Registry.php
PHP:
скопировать код в буфер обмена
  1.  
  2. class Registry
  3. {
  4.     protected static $store = array();
  5.     protected function __construct() {}
  6.     protected function __clone() {}
  7.    
  8.     public static function exists($name)
  9.     {
  10.         return isset(self::$store[$name]);
  11.     }
  12.    
  13.     public static function get($name)
  14.     {
  15.         return (isset(self::$store[$name])) ? self::$store : null;
  16.     }
  17.    
  18.     public static function set($name, $obj)
  19.     {
  20.         return self::$store[$name] = $obj;
  21.     }
  22.    
  23.     public static function remove($name)
  24.     {
  25.         unset(self::$store[$name]);
  26.     }
  27. }
  28.  



Request.php
PHP:
скопировать код в буфер обмена
  1.  
  2. // http://amdy.su/class-request/
  3.  
  4. class Type {
  5.     const T_ARRAY = 'array';
  6.     const T_BOOLEAN = 'boolean';
  7.     const T_INTEGER = 'integer';
  8.     const T_FLOAT = 'float';
  9.     const T_STRING = 'string';
  10.     const T_OBJECT = 'object';
  11.     static public function toArray($value) {
  12.         return (array) $value;
  13.     }
  14.     static public function toBoolean($value) {
  15.         return (boolean) $value;
  16.     }
  17.     static public function toInteger($value) {
  18.         return (int) $value;
  19.     }
  20.     static public function toFloat($value) {
  21.         return (float) str_replace(',', '.', $value);
  22.     }
  23.     static public function toString($value) {
  24.         return (string) $value;
  25.     }
  26.     static public function toObject($value) {
  27.         return (object) $value;
  28.     }
  29. }
  30.  
  31. class Request {
  32.     private $_url;
  33.     private $_part = array();
  34.     private static $_instance;
  35.     protected $_controller;
  36.     protected $_action;
  37.     /**
  38.      * @param string $url
  39.      * @return Request
  40.      */
  41.     public static function singleton($url = null) {
  42.         if (!self::$_instance) {
  43.             self::$_instance = new Request($url);
  44.         }
  45.         return self::$_instance;
  46.     }
  47.     public function __construct($url = null) {
  48.         if (!$url) {
  49.             $url = $_SERVER['REQUEST_URI'];
  50.         }
  51.         $this->_url = urldecode($url);
  52.         $this->_part = array();
  53.         foreach (explode('/', $this->_url) as $k => $v) {
  54.             if (!empty($v)) {
  55.                 $v = explode(':', $v);
  56.                 if (!isset($v[1])) {
  57.                     $this->_part[] = $v[0];
  58.                 } else {
  59.                     $this->_part[$v[0]] = implode(':', array_slice($v, 1));
  60.                 }
  61.             }
  62.         }
  63.         $this->_controller =  $this->get(0, 'main');
  64.         if (!preg_match('~^[a-z]+[a-z0-9_-]*$~', $this->_controller)) {
  65.             $this->_controller = 'error'; // 'error'
  66.         }
  67.         $this->_action =  $this->get(1, 'main');
  68.         if (!preg_match('~^[a-z]+[a-z0-9_-]*$~', $this->_action)) {
  69.             $this->_action = 'error404';
  70.         }
  71.     }
  72.     /**
  73.      * return value from request
  74.      *      get(0),
  75.      *      get(0, 'default', Type::T_STRING)
  76.      *      get('test', 0, Type::T_INTEGER)
  77.      * @param string $key
  78.      * @param mixed $default
  79.      * @param string $type
  80.      * @return mixed
  81.      */
  82.     public function get($key, $default = null, $type = null) {
  83.         if (isset($this->_part[$key])) {
  84.             if ($type) {
  85.                 if (!is_array($type)) {
  86.                     return call_user_func_array(array('Type', 'to'.ucfirst($type)), array($this->_part[$key]));
  87.                 } else {
  88.                     return call_user_func_array(array('Type', 'to'.ucfirst($type[0])), array($this->_part[$key])+$type[1]);
  89.                 }
  90.             } else {
  91.                 return $this->_part[$key];
  92.             }
  93.         } else {
  94.             if (is_object($default) && $default instanceof Exception) {
  95.                 throw $default;
  96.             } else {
  97.                 return $default;
  98.             }
  99.         }
  100.     }
  101.     public function has($key) {
  102.         return isset($this->_part[$key]);
  103.     }
  104.     public function getController() {
  105.         return $this->_controller;
  106.     }
  107.     public function getAction() {
  108.         return $this->_action;
  109.     }
  110.     public function isAjax() {
  111.         if ($this->get('ajax') == 1) {
  112.             return true;
  113.         } elseif (isset($_SERVER['HTTP_X_REQUESTED_WITH'])
  114.                 && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
  115.             return true;
  116.         } else {
  117.             return false;
  118.         }
  119.     }
  120. }
  121.  



Подскажите, что может не правильно построено (лучше знать изначально)
В дальнейшем есть желание прикрутить ORM propel и Смарти.
Но пока не могу логически спроектировать взаимодействия в самом начале, много мыслей и не знаю какие с них правильные а какие нет.

Дальнейшее развитие вижу в в классе "Router", так что он передает параметры классу (он еще не создан), которые будет загружать необходимый модуль с триадой (MVC).
Fedak.o.b Отправлено: 27 Июля, 2012 - 14:50:14 • Тема: Пишу страницу в UTF-8 отображаются кракозябры • Форум: SQL и Архитектура БД

Ответов: 21
Просмотров: 83
СоветскийКод пишет:
СоветскийКод

Когда то тоже была такая проблема с кодировкой!

1. В файле httpd.conf ставим AddDefaultCharset utf-8

2. В самом главном файле (index.php), первой строкой прописываем:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-type: text/html; charset=UTF-8');
  3. // дале тело документа
  4. ?>
  5. <html>
  6.    <head>
  7.       <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  8. ...


3. Дале все вайлы Преобразовать в UTF-8 без BOM. Для данных действий использую редактор notepad++

4. Если используется база данных тогда в конфигурационном файле где идет подключение к бд дописать:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // ...
  3. mysql_query("SET NAMES utf8");
  4. mysql_query('SET CHARACTER SET utf8');
  5. mysql_query('SET COLLATION_CONNECTION="utf8_general_ci"');
  6. // ...
  7. ?>


И обязательно нужно сменить кодировку в самих таблицах вашей базы на utf8_general_ci

Должно помочь Подмигивание
Fedak.o.b Отправлено: 13 Октября, 2011 - 15:35:12 • Тема: Начал изучать ООП • Форум: Объектно-ориентированное программирование

Ответов: 9
Просмотров: 3355
твой первый вариант не подошел, второй не я понял)
Fedak.o.b Отправлено: 13 Октября, 2011 - 13:34:21 • Тема: Начал изучать ООП • Форум: Объектно-ориентированное программирование

Ответов: 9
Просмотров: 3355
Я убрал совсем __construct в класе News?,
создал метод outputNews():

PHP:
скопировать код в буфер обмена
  1.         function outputNews($idnews, $idrybruka, $iduser, $title, $text, $date)
  2.         {
  3.                 $this->idnews = $idnews;
  4.                 $this->idrybruka = $idrybruka;
  5.                 $this->iduser = $iduser;
  6.                 $this->title = $title;
  7.                 $this->text = $text;
  8.                 $this->date = $date;
  9.         }


Создание объека винес за цикл:

потом обращаюся к методу созданого объекта уже в цикле
PHP:
скопировать код в буфер обмена
  1. $outPut[] = $obj->outputNews($row['idnews'], $row['idrybruka'], $row['iduser'], $row['title'], $opus, $row['date']);

и на выходе ничего не получаю, почему?
Fedak.o.b Отправлено: 13 Октября, 2011 - 12:03:27 • Тема: Начал изучать ООП • Форум: Объектно-ориентированное программирование

Ответов: 9
Просмотров: 3355
Добрый день!
Вот недавно начал изучать ОО, и еще не очень все понимаю как реализовать.

Для начал чтоб проверить как усвоился материал параллельно делал новостную ленту.
Так вот, меньше слов больше к теме вопроса.

Вот сам мой пример):

news.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. include "config.php";
  4.  
  5. class News
  6. {
  7.     public $idnews; // Індитифікатор новини
  8.     public $idrybruka; // Індитифікатор рубрики
  9.     public $iduser; // Індитифікатор автора
  10.     public $title; // Заголовок
  11.     public $text; // Текст
  12.     public $date; // Дата private
  13.    
  14.     function __construct($idnews, $idrybruka, $iduser, $title, $text, $date)
  15.     {
  16.         $this->idnews = $idnews;
  17.         $this->idrybruka = $idrybruka;
  18.         $this->iduser = $iduser;
  19.         $this->title = $title;
  20.         $this->text = $text;
  21.         $this->date = $date;
  22.     }
  23. }
  24.  
  25. class NewsBD
  26. {
  27.     private $outPut;
  28.    
  29.     function __construct()
  30.     {
  31.         $this->outPut = array();
  32.     }
  33.  
  34.     function Select($news_id = False)
  35.     {
  36.         $sql = "SELECT `idnews`, `idrybruka`, `iduser`, `title`, `min_text`, `max_text`, `date` FROM `news` WHERE `active`='1'";
  37.         ($news_id) ? $sql.= "AND `idnews`='{$news_id}'" : $sql.= "ORDER BY `idnews` DESC";
  38.        
  39.         $query = mysql_query($sql);
  40.         while($row = @mysql_fetch_array($query))
  41.         {
  42.             ($news_id) ? $opus = $row['max_text'] : $opus = $row['min_text'];
  43.            
  44.             $outPut[] = new News($row['idnews'], $row['idrybruka'], $row['iduser'], $row['title'], $opus, $row['date']);
  45.         }
  46.         return $outPut;
  47.     }
  48. }
  49.  
  50. ?>
  51.  


index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require_once "includes/functions.php";
  4. require_once "includes/News.php";
  5.  
  6. // Створуємо об'єкт Новини
  7. $obj = new NewsBD();
  8.  
  9. $news_id = (int)$_GET['id'];
  10. $news = $obj->Select($news_id);
  11. echo (empty($news)) ? "(новини не існує)" : false;
  12.  
  13. for($i=0; $i<count($news); $i++)
  14. {
  15.     echo
  16.     "<strong>{$news[$i]->title}</strong><br>",
  17.     "{$news[$i]->text}<br>",
  18.     "<code>Дата: {$news[$i]->date}</code><br>",
  19.     "<a href=\"".(empty($news_id) ? "index.php?id={$news[$i]->idnews}" : redirect())."\">".(empty($news_id) ? "Детальніше" : "Назад")."</a><hr>";
  20. }
  21.  
  22. ?>
  23.  


Вопрос:
1. В файле News.php в классе NewsBD, создаем объект News, и соответствующими параметрами, вопрос состоит в том рентабельно ли создавать объект в цикле while, или лутше создание объекта News, в классе NewsBD перед циклом while, и переписать класс так чтоб каждое свойство имело свой метод, и обращаться уже не к объекту, а к его методам.

2. И еще, правильно ли я написал дизайн кода по отношнию к паттерн(ООП).

Зарание спасибо!

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB