PHP.SU

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

Страниц (8): « 1 2 3 4 [5] 6 7 8 »

> Найдено сообщений: 111
morph-x Отправлено: 15 Ноября, 2011 - 00:41:04 • Тема: Как сделать правильную CMS • Форум: Объектно-ориентированное программирование

Ответов: 105
Просмотров: 32057
caballero пишет:
создать соответствующие экземпляры ActiveRecord разумеется

Это понятно. Мне интересно как получить список Id дочерних страниц. Здесь нужен метод типа:

PHP:
скопировать код в буфер обмена
  1. function static название_метода($parentId) {
  2.    // Получаем список Id страниц с parentId = {$parentId}
  3.    // Возвращаем этот список Id
  4. }


Если я правильно понимаю, в соответствии с паттерном ActiveRecord, в классе Page должны быть методы для обработки только экземпляра класса, и не содержать статических полей и методов. Тогда в какой класс запихнуть этот метод?
morph-x Отправлено: 14 Ноября, 2011 - 23:58:59 • Тема: Как сделать правильную CMS • Форум: Объектно-ориентированное программирование

Ответов: 105
Просмотров: 32057
Да, одна страница в одной записи БД. И разбивка на страницы тут не причем. Здесь дело в получении списка страниц. Допустим, мы создали экземпляр класса Page (страницу) с Id = 10, при этом в наш экземпляр загружает страницу из БД. Затем нам нужно получить все ее дочерние страницы. Как это правильно сделать? Делать метод get_childrens в классе Page, по-моему, не правильно. Вот я и спрашиваю, как правильно.
morph-x Отправлено: 14 Ноября, 2011 - 22:44:34 • Тема: Как сделать правильную CMS • Форум: Объектно-ориентированное программирование

Ответов: 105
Просмотров: 32057
Я решил использовать паттерн ActiveRecord. И тут появилась одна проблема: как вывести список страниц? Т.е. у меня есть класс Page, и одна страница = один экземпляр класса Page. При создании страницы (экземпляра класса Page) в скобках указывается Id страницы, и если оно указано, то данные подгружаются из БД, а если нет, то создается как бы новая страница. А как при этом правильно организовать вывод всех страниц сайта (не перечисляя все страницы вручную) ?
morph-x Отправлено: 13 Ноября, 2011 - 15:21:00 • Тема: Стоит ли создавать единственный экземпляр класса? • Форум: Объектно-ориентированное программирование

Ответов: 12
Просмотров: 6191
DeepVarvar, большое спасибо!
morph-x Отправлено: 13 Ноября, 2011 - 15:04:20 • Тема: Стоит ли создавать единственный экземпляр класса? • Форум: Объектно-ориентированное программирование

Ответов: 12
Просмотров: 6191
Я так понимаю, что бы создать экземпляр данного класса нужно сделать так:
PHP:
скопировать код в буфер обмена
  1. <?PHP $db = Db::getInstance(); ?>
morph-x Отправлено: 13 Ноября, 2011 - 14:31:47 • Тема: Стоит ли создавать единственный экземпляр класса? • Форум: Объектно-ориентированное программирование

Ответов: 12
Просмотров: 6191
Короче есть у меня класс для работы с БД:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. class Db {
  4.   private $connection;
  5.    
  6.   public function __construct() {
  7.       // Устанавливаем соединение с БД в переменную $connection
  8.   }
  9.    
  10.   public function query($query) {
  11.       // Выполняем запрос и возвращаем результат
  12.   }
  13. }


Это как бы урезанная версия, но для наглядности сойдет. Суть в том, что соединение с БД у меня будет только одно. Стоит ли создавать единственный экземпляр этого класса? Какой из этих вариантов наиболее правильный?

Вариант 1
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   $db = new Db;
  3.   $db->query(/* Здесь запрос */);
  4. ?>


Вариант 2
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.   Db::query(/* Здесь запрос */);
  3. ?>


Или предложите свой вариант, если эти два считаете неправильными. Заранее спасибо!
morph-x Отправлено: 13 Ноября, 2011 - 02:57:10 • Тема: Как сделать правильную CMS • Форум: Объектно-ориентированное программирование

Ответов: 105
Просмотров: 32057
Я имел ввиду именно CMS, а не фреймворки... но посмотрю тогда CodeIgniter. Спасибо!
morph-x Отправлено: 13 Ноября, 2011 - 02:47:15 • Тема: Как сделать правильную CMS • Форум: Объектно-ориентированное программирование

Ответов: 105
Просмотров: 32057
Смотрел пару CMS, но там был процедурный стиль, а мне нужен объектно-ориентированный. Если можете, подскажите, пожалуйста, CMS на ООП.
morph-x Отправлено: 13 Ноября, 2011 - 01:58:49 • Тема: Как сделать правильную CMS • Форум: Объектно-ориентированное программирование

Ответов: 105
Просмотров: 32057
Привет всем! Недавно решил написать маленькую CMS. Да и вообщем, написал, но к сожалению в процедурном стиле. Решил переписать заново, но уже в объектно-ориентированном стиле. Посмотрел много уроков и статей и в результате запутался Улыбка . Какие классы должны быть? Видел, что используют Config и Db (extends Config) и уже от класса Db создают классы Page, User и т.д. Еще видел что создают один класс с именем CMS (или Main). В этом классе создают все функции (для соединения с БД, создания страниц, пользователей и т.д). Подскажите, пожалуйста, как правильнее делать? Какая структура, приблизительно, должна быть? Заранее большое спасибо!
morph-x Отправлено: 12 Ноября, 2011 - 21:55:51 • Тема: Как превратить массив в PHP-код? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 366
DeepVarvar, да мне не время важно, а безопасность... что бы никто конфиг не мог посмотреть, вдруг запрет через .htaccess не сработает.
Данил_123, согласен, поэтому я и хочу хранить в php...
morph-x Отправлено: 12 Ноября, 2011 - 21:44:26 • Тема: Как превратить массив в PHP-код? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 366
Bio man, ну если так, тогда буду хранить в INI Улыбка. Просто ради большей безопасности хотел в php, а спрашивать в той теме, по-моему, уже оффтоп.
morph-x Отправлено: 12 Ноября, 2011 - 21:35:41 • Тема: Как превратить массив в PHP-код? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 366
DeepVarvar, спасибо!
Bio man, мне нужно как раз то что написал DeepVarvar.
Кстати, есть ли для этого какие-то стандартные функции? Или лучше хранить конфиурацию не в PHP а в INI-файлах?
morph-x Отправлено: 12 Ноября, 2011 - 21:18:22 • Тема: Как превратить массив в PHP-код? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 366
Можно ли как то из массива (или любой другой переменной) сделать PHP-код? Допустим есть массив $config. Нужно с помощью функции превратить его в PHP-код и записать в файл config.php, так что бы этот самый config.php содержал что-то вроде:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. return array(
  3.     "dbhost"=>"localhost",
  4.     "dbuser"=>"root",
  5.     "dbpass"=>"12345",
  6.     "dbname"=>"mydatabase",
  7.     ...
  8. );
  9. ?>

Подскажите, есть ли для этого какая-то функция или же все надо делать вручную? Заранее спасибо!
morph-x Отправлено: 12 Ноября, 2011 - 15:16:02 • Тема: Как хранить конфигурацию сайта? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 5143
Спасибо всем! Решил хранить конфигурацию в INI-файле. В моем случае это безопасно, т.к. у меня все файлы кроме index.php и папки uploads закрыты через .htaccess.
(Добавление)
Хотел еще узнать относительно класса Config. У меня он выглядит так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. abstract class Config {
  4.     protected static $host;
  5.     protected static $username;
  6.     protected static $password;
  7.     protected static $database;
  8.        
  9.     public function __construct() {
  10.         $this->load();
  11.     }
  12.        
  13.     private function load() {
  14.         $config = parse_ini_file("config.ini");
  15.         $this->host = $config["host"];
  16.         $this->username = $config["username"];
  17.         $this->password = $config["password"];
  18.         $this->database = $config["database"];
  19.     }
  20. }
  21.  
  22. ?>

Далее создаются другие классы (напр. Db) на основе него. Правильно ли так делать? И еще хотел спросить, можно ли как-то превратить массив обратно в ini?
morph-x Отправлено: 12 Ноября, 2011 - 02:31:05 • Тема: Как хранить конфигурацию сайта? • Форум: Объектно-ориентированное программирование

Ответов: 8
Просмотров: 5143
Как правильнее хранить конфигурацию сайта? Хранить ее в классе Config (поля static) или в отдельном объекте класса Config, или вообще не испоьзовать классы, а хранить конфигурацию в константах (под конфигурацией я имею ввиду данные для соединения с БД, URL сайта и т.п.). Заранее спасибо!

Страниц (8): « 1 2 3 4 [5] 6 7 8 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB