Куча вопросов по NetBeans от разных пользователей

zerkms

TDD infected
Команда форума
Savio
Ну вот откуда у тебя сейчас переменная в скрипте появляется? Совершенно верно, из глобальной области видимости.

Если же ты получал бы объект $sql как аргумент (в случае, если твой код является каким то методом или функцией) или если бы ты в каждом скрипте получал его из какой-то фабрики-синглтона, тогда у тебя тип был бы определён в момент получения или передачи.
 

Savio

Новичок
p.s. я сознательно пишу свой "велосипед". зато посталенная перед собой задача выполняется - это сделать сайт быстрым и простым (в плане реализации кода), в отличии от разных готовых "движков-монстров". ООП использую там где это нужно (на мой взгляд), а не везде где только можно. архитектуру выбрал так сказать модульную. пришел запрос, заинклюдил нужный файлик, в котором идет обработка/выполнение требуемых задач.

но. скорее всего я не совсем прав в своем модульном подходе(архитектуре), поскольку у меня сразу же возникли проблемы с netbeans, а у других людей таких проблем не замечал.

посоветуйте пожалуйста варианты правильной архитектуры? что следует почитать по этой теме? в какую сторону смотреть?
 

zerkms

TDD infected
Команда форума
Если у тебя больше 2х страниц кода - лично я не вижу смысла продолжать упираться и писать процедурную лапшу
 

Savio

Новичок
извините что отступаю от темы NetBeans'а, но может вы меня спасете в плане програмирования (верней моего говнокода)
вот пример файла admin_tovar_view.php - вывод перечня товара в таблицу с разбивкой на странички
PHP:
<?php

/* @var $sql Sql */

#Запрет прямого доступа
defined( 'ACCESS' ) or die( 'Restricted access' );

# если не авторизирован - редирект на авторизацию
if (!$user->checkAuth()) {
    $user->redirect(_WWW . 'auth/auth/');
}

# шаблон страницы
$tpl = new HTML_Template_IT(_DIR.'template/'._THEME.'/module/'._MOD.'/');
$tpl->loadTemplatefile(_MOD.'_'._ACT.'.tpl',true,true);

$tpl->setVariable('www',_WWW);
$tpl->setVariable('mod',_MOD);
$tpl->setVariable('act',_ACT);
$tpl->setVariable('theme',_THEME);

# если ошибка - красиво вывожу информацию в шаблоне
if ($error->isError())
{
    $error->showErrorTextToTemplate($tpl,'error');
    $error->unError();
}
$category_id=$_GET['category'];

# вывожу перечень категорий товара в SELECT(html) в шаблон
if ($category_id==-1)
{
    # вибираю первую запись
    $query="SELECT * FROM `abc_category` WHERE `visible`=1 ORDER BY `name` DESC";
    $res=$db->query($query);
    $row=$res->fetchrow();
    $category_id=$row['id'];

}

$tpl->setVariable('category_id',$category_id);

# формирую таблицу с перечнем товара
$query="SELECT * FROM `abc_category` WHERE `visible`=1 ORDER BY `name` DESC";
$res=$db->query($query);
while ($row=$res->fetchrow())
{
   $tpl->setVariable('www_block2',_WWW);
   $tpl->setVariable("act_block2",_ACT);
   $tpl->setVariable('category_id_block2',$row['id']);
   $tpl->setVariable('category_name_block2',$row['name']);
   if ($category_id==$row['id'])
   {
        $tpl->setVariable('atc_block2_class','active curved');
   }
   else
   {
        $tpl->setVariable('atc_block2_class','curved');       
   }
   $tpl->parse('block_abc_category');
}


$query=sprintf("SELECT * FROM `"._ACT."` WHERE `category_id`=%d AND `visible`=1 ",
                mysql_real_escape_string($category_id));

$page=1;
if (!empty($_GET['page']))
{
 $page=$_GET['page'];
}
# pages - класс, который делает разбивку на страницы контекста
$pages = new Pages(); # создание объекта
$pages->setQuery($query); # задаем ранее подготовленый sql-запрос для выборки 
$pages->setPageRows(10); # количество строк на одной странице
$pages->setWidth(3); 
$pages->setPage($page); # задаем активную страницу
$pages->setTemplate(_DIR.'template/'._THEME.'/inc/pages/'); # указываем путь к каталогу с шаблоном для панели страниц 
$pages->showPages($tpl,"pages"); # вывод панели страниц 
$query=$pages->getQuery(); # получаем обработанный sql-запрос (с LIMIT) для дальнейшего использования

 $res=$db->query($query);
 $i=0;
 while ($row=$res->fetchrow())
 {
   $i++;
   $tpl->setVariable('num',($i+$pages->getPageStart()));   
   $tpl->setVariable('www_block',_WWW);   
   $tpl->setVariable("mod_block",_MOD);
   $tpl->setVariable("act_block",_ACT);
   $tpl->setVariable('id',$row['id']);

   $tpl->setVariable('article',$row['article']);
   $tpl->setVariable('brand',$sql->getFieldByField('name', 'abc_brand', 'id', $row['brand_id']));
   $tpl->setVariable('category',$sql->getFieldByField('name', 'abc_category', 'id', $row['category_id']));
   
   $tpl->parse('block_'._ACT);
   
 }
?>
в проекте много файлов (на любой action свой), но мне это показалось лучшим нежели делать один километровый файл и каждый action засовывать в клас
ну вот так и живу :)
 

AmdY

Пью пиво
Команда форума
ну вот так и живу
не живёшь, а выжываешь.

в первую очередь вынеси все запросы к базе в функции и разбросай их по файлам.
PHP:
$query="SELECT * FROM `abc_category` WHERE `visible`=1 ORDER BY `name` DESC";
$res=$db->query($query);
while ($row=$res->fetchrow())
....
// будет 
foreach(catalog_get_categories() AS $category) 
.....
// причём catalog_get_categories возвращает уже готовый многомерный массив включая брэнды
array(
'id' => 1,
'name' => 'Category name'
'brand' => array('id' => 666, 'name' => 'Brand Name')
)
 

LONGMAN

Dark Side of the Moon..
Как изменить цвет для нативных функций php? Чтоб они отличались от моих. NetBeans 7.1
 

AmdY

Пью пиво
Команда форума
наверное никак, даже определения такого в ide не должно быть, т.к. для поддержки нативных функций у них просто есть обычные файлики с phpdoc, которые незаметно инклудятся в проект.
 

LONGMAN

Dark Side of the Moon..
наверное никак, даже определения такого в ide не должно быть, т.к. для поддержки нативных функций у них просто есть обычные файлики с phpdoc, которые незаметно инклудятся в проект.
Почти во всех IDE нативные функции php отличаются от пользовательских по цвету. А в NetBeans неужели этого нет?
 

Koc

Новичок
наверное никак, даже определения такого в ide не должно быть, т.к. для поддержки нативных функций у них просто есть обычные файлики с phpdoc, которые незаметно инклудятся в проект.
в PHPDesigner 7 такое было, когда я им пользовался (года 2 назад). После перехода на NB такого тоже некоторое время не хватало, но потом как-то прошло. Функций наверно мало используем)
 

Absinthe

жожо
Почти во всех IDE нативные функции php отличаются от пользовательских по цвету.
Дай определение нативных функций.

Скорее всего просто определенный захардкожденный набор слов в них был лоя отображения другим цветом.
 

AmdY

Пью пиво
Команда форума
а прикольно бы было чтобы можно было назначать разные цвета не только для нативных функций, но и для своих пакетов.

а кроме PHPDesigner ещё есть IDE которые так умеют?
 

AmdY

Пью пиво
Команда форума
Aptana, значит и всё что на Eclipse (PDT, Zend Studio)?
 

baev

‹°°¬•
Команда форума
php expert editor не «IDE», конечно, но — тоже умеет.
Правда, он давно уже не обновлялся.
 
Сверху