Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Идеальная структура фаловой системы сайта
 
 автор: BMW   (22.08.2011 в 19:08)   письмо автору
 
 

Еще раз ДД! Расскажите кто как выполняет строит работу сайта и какие + и минусы того или иного способа

  Ответить  
 
 автор: BMW   (22.08.2011 в 19:13)   письмо автору
 
   для: BMW   (22.08.2011 в 19:08)
 

Начну первый раз уж сам затронул тему:
И так я строю скилет сайта, в отдельные части внедряю ПХП таким образом автоматизирую html, механизм пхп берет данные из БД где строчка code присутсвует если она есть то eval() иначе выводим текстом.
При этом храню нарезки шаблона в папке tampl (типа шаблон)
JS в tampl/js
если есть выносимые скрипты (напррмер главная страница или страница каталога и тд) то в папке parts
Классы вообще не использую (наверное тут косяк)
плюс есть сотня написанных функций файл который подключаю в самом начале...

Картинки делаю через id в папке IMG там подпапки которые имеют имена таблиц
в каждой такой есть папка mini100 где 100 - минимальная ширина изображения, так сказать привьюшка =)

Жду комментарий и конечно КРИТИКИ)

  Ответить  
 
 автор: sl1p   (22.08.2011 в 19:30)   письмо автору
 
   для: BMW   (22.08.2011 в 19:13)
 

омг

  Ответить  
 
 автор: BMW   (22.08.2011 в 19:47)   письмо автору
 
   для: sl1p   (22.08.2011 в 19:30)
 

многословно =) но все-таки, кто что расскажет или все пользуют открытые сms?)

  Ответить  
 
 автор: Axxil   (22.08.2011 в 20:00)   письмо автору
 
   для: BMW   (22.08.2011 в 19:13)
 

Про eval() лучше вообще забыть, это один из самых противных костылей php, который, по неведомой мне причине, просто обожают начинающие (ничего личного, общее наблюдение).

Что касается скелета, то у суслика он один, а у слона несколько другой, всё зависит от того сколько и какого мяса надо будет удерживать, с какой скоростью и в каком виде перемещать его в пространстве.

Но, общие принципы проектирования, безусловно, имеются. Я советую копать в сторону MVC паттерна, так как он сейчас король и большинство фреймворков и cms построены на этой модели.

Начать изучение можно с википедии: http://ru.wikipedia.org/wiki/Model-View-Controller

  Ответить  
 
 автор: sl1p   (22.08.2011 в 20:11)   письмо автору
 
   для: Axxil   (22.08.2011 в 20:00)
 

+1 идеальный паттерн почти для любого решения =)

  Ответить  
 
 автор: BMW   (22.08.2011 в 21:02)   письмо автору
 
   для: Axxil   (22.08.2011 в 20:00)
 

Супер) а какими инструментами реализовать MVC на php?

  Ответить  
 
 автор: Valick   (22.08.2011 в 21:11)   письмо автору
 
   для: BMW   (22.08.2011 в 21:02)
 

блокнотом

  Ответить  
 
 автор: BMW   (22.08.2011 в 21:21)   письмо автору
 
   для: Valick   (22.08.2011 в 21:11)
 

блокнот не входит в инструментарий пхп =)

  Ответить  
 
 автор: Valick   (22.08.2011 в 21:27)   письмо автору
 
   для: BMW   (22.08.2011 в 21:21)
 

а что по вашему туда входит?

  Ответить  
 
 автор: BMW   (22.08.2011 в 21:37)   письмо автору
 
   для: Valick   (22.08.2011 в 21:27)
 

внутренние возможности языка пхп, реализумые по срествам написания программного кода

  Ответить  
 
 автор: sl1p   (22.08.2011 в 23:41)   письмо автору
 
   для: BMW   (22.08.2011 в 21:37)
 

вы наверное просто не поняли что такое MVC раз задаете такие вопросы.
http://ru.wikipedia.org/wiki/Model-View-Controller

тут возможности языка не причём, это паттерн, который применяем к любому языку по сути.

а вообще:
http://www.google.com.ua/#sclient=psy&hl=ru&source=hp&q=MVC+php&pbx=1&oq=MVC+php&aq=f&aqi=g5&aql=&gs_sm=e&gs_upl=2750l3435l0l3598l7l4l0l0l0l0l223l66 0l0.3.1l4l0&fp=e20f31e58a912210&biw=1366&bih=632

и первая ссылка которая детально "в картинках":) всё объясняет.
http://habrahabr.ru/blogs/php/31270/

  Ответить  
 
 автор: Axxil   (23.08.2011 в 09:53)   письмо автору
 
   для: BMW   (22.08.2011 в 21:02)
 

Если схематично, то вам понадобится 3 папки:

models
controllers
templates

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

В папке controllers будет находиться логика сайта. Все условия, обработка входных данных и т.д.

В папке templates - шаблоны сайта. Т.е. html код.

Все url запросы лучше тащить через один файл, называемый роутером. С помощью htaccess можно настроить сайт так, что любой набранный урл будет перенаправляться на этот файл router.php

Простейшая страница в сборе может выглядеть, например, так (по мотивам реально функционирующего фреймворка):

<?
  
require_once('config.php');
  require_once(
'autoload.php');
  
  
$data component::load('users/front')->getUsersFetch();
  
  echo  
spec::load('view')->showTemplate($data);
?>


С помощью функции __autoload можно заставить классы загружаться в в тот момент, когда (и если) они нужны, а паттерн singleton обеспечивает отсутствие дубликатов объектов.

Класс контроллера может выглядеть примерно так:

<?
class controllers_users_front extends generic_controller{
  
  public function 
getUsersFetch(){
    return 
$this->modelUsers->getUsersFetch();
  }

  public function 
__construct(){
    
$this->modelUsers model::load('users');
    
parent::__construct(); 
  }
  
}
?>


Класс модели, примерно так:

<?

  
class model_users extends generic_model{
     
     public function 
getUsersFetch(){
       return 
parent::query('SELECT * FROM users WHERE status = ?i',array(1),'assoc');
     }
  
   }
?>


Вывод шаблона может выглядеть примерно так:

<?
class spec_view extends Smarty{
  public function 
showTemplates($data){
    
parent::assign('data',$data);
    return 
parent::show('front/users.tpl');
  }
}
?>


Это всё, как Вы понимаете, схема. В одном сообщении вообще трудно сколь-нибудь подробно описать принципы реализации MVC. Но в ней сказано достаточно, на мой взгляд, ключевых слов, чтобы составить представление о проблеме.

  Ответить  
 
 автор: BMW   (23.08.2011 в 10:01)   письмо автору
 
   для: BMW   (22.08.2011 в 19:13)
 

Спасибо всем, кто попытался помочь в моем php-развитии =) Особенно ценны были советы sl1p и конечно Axxil.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования