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

Разное

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

 

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

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

тема: Новый стандарт ООП - 3-tier architecture & PHP
 
 автор: codexomega   (08.09.2006 в 05:02)   письмо автору
 
 

Для удобства, быстроты производительности и надежности, приложение строится на ООП и делится на 3 части: интерфейс, бизнес-логика и база данных.
Подобная структура легко создается и управляется на ASP.NET
Но в связи с высокими ценами и большими ограничениями на хостинг (Windows Server 2003, ASP.NET 2.0, MSSQL Server), возникла потребность воссоздать подобное на PHP, перетрансформировав старую линейную логику с включением кое-каких отдельный функций путём include().
Вопрос: что для этого надо?
Какие внешние, дополнительные библиотеки стоит установить?
Какую среду разработки выбрать между Zend и NuSphere?

   
 
 автор: cheops   (08.09.2006 в 12:29)   письмо автору
 
   для: codexomega   (08.09.2006 в 05:02)
 

Специальных библиотек для поддержки трёхуровневой структуры нет, так как PHP изначально планировался как язык второго слоя (бизнес-логики), база данных выделена в отдельную структуру и там и тут, за реализацию интерфейса больше несёт ответственность JavaScript и HTML-код. Дело в том, что ASP.NET или Java - это технологии, которые влкючают в себя все аспекты Web-среды. PHP - это лишь фрагмент технологии, которой противопоставляет ASP.NET и Java мир открытого программного обеспеченья. PHP скорее можно рассматривать как C# или сервлеты на Java.

   
 
 автор: codexomega   (09.09.2006 в 02:54)   письмо автору
 
   для: codexomega   (08.09.2006 в 05:02)
 

Тема затерялась.
Оказалась или многим не понятной или не популярной.
Неужели все в блокноте программируют?
Кто-нибудь организовывает свои проектные файлы?
Есть статья по теме, только на английском, если разберусь, поделюсь опытом.

   
 
 автор: codexomega   (09.09.2006 в 08:23)   письмо автору
 
   для: codexomega   (09.09.2006 в 02:54)
 

Легкий набросок:

Возьмем для примера страницу с выводом списка новостей.
Получаем следующее:

- news.php
- Business->NewsManager
- Business->Data->NewsSqlProvider
- Business->Entities->News


class News:

public class News{
   private $Title;
   private $Date;
   private $Detail;

   public function _construct($title, $date, $detail){
      $this->Title = $title;
      $this->Date = $date;
      $this->Detail = $detail;
   }

   public function getTitle(){return $this->Title;}
   public function setTitle($title){$this->Title = $title;}

   public function getDate(){return $this->Date;}
   public function setDate($date){$this->Date = $date;}

   public function getDetail(){return $this->Detail;}
   public function setDetail($detail){$this->Detail = $detail;}

}


class NewsManager:

...
public function getNewsList($topMax){
   return NewsSqlProvider->getNewsList($topMax);
}
...


class NewsSqlProvider:

public function getNewsList($topMax){
   // connect to BD
   ...
   // pass query
   ...
   // get result into array
   $listNews = array();
  while($result = mysql_fetch_array($sql_records)){
      News objNews = new News($result['title'], $result['date'], $result['detail']);
      $listNews->Add(objNews);
   }
   return $listNews;  
}


news.php:

...
<!-- show news -->
<?php 
for($i=0$i<$listNewsi++){
   echo(
listNews[$i]->getDate());
   echo (
"<br/>");
   echo(
listNews[$i]->getTitle());
   echo (
"<br/>");
   echo(
listNews[$i]->getDetail());
}
?>
...

   
 
 автор: codexomega   (11.09.2006 в 08:22)   письмо автору
 
   для: codexomega   (09.09.2006 в 08:23)
 

После небольшого тестирования, выбрал NuSphere PhpED как среду разработки PHP приложений, так как данный продукт обладает всеми необходимыми качествами - подсветка кода, Unicode, всплывающие подсказки и дополнение кода по ходу его написания, а также встроенным мануалом по PHP, легко настраивается и достаточна проста в управлении.
Что касается 3-х уровневой архитектуры, то и это тоже вполне нормально удается.
Перехожу на объектно ориентированное программирование.

   
Rambler's Top100
вверх

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