<?php
defined('MEX') or die("Нет доступа");
class user extends route
{
public function index()
{
$data = array();
if(isset($_POST['data']))
{
$data['result'] = $_POST['data'];
}
View::Factory('user', $data); // вот он
}
таким образом:
<?php
defined('MEX') or die("Нет доступа");
class View
{
public static function Factory($view, $data)
{
$file = $_SERVER['DOCUMENT_ROOT'] .'/views/view_'.$view.'.php';
if(!file_exists($file))
{
engine :: NotFound();
}
else
{
extract($data);
include_once $file;
}
}
}
Вопрос: как грамотно сделать нормальный вид?
т.е.
header
content
footer
а при подключении вида, дергать только content
мысли:
сделать через буферизацию...
поделитесь своими мыслями, пожалуйста!
Спустя 3 минуты, 7 секунд (25.03.2012 - 19:58) Игорь_Vasinsky написал(а):
использовать файловый кэш? для header и footer
Спустя 6 минут, 28 секунд (25.03.2012 - 20:04) johniek_comp написал(а):
Игорь_Vasinsky
это ты с yii пример взял? :D :D :D
А вот скажем так:
что бы все в одной файле было, а я переменные дергал только
это ты с yii пример взял? :D :D :D
А вот скажем так:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div class="content">
<?=$content?>
</div>
</body>
</html>
что бы все в одной файле было, а я переменные дергал только
Спустя 6 минут, 53 секунды (25.03.2012 - 20:11) Игорь_Vasinsky написал(а):
нет. так много цмсок делает.
и что? у тя и title и остальные мета теги одинаковые будут?
и что? у тя и title и остальные мета теги одинаковые будут?
Спустя 7 минут, 55 секунд (25.03.2012 - 20:19) johniek_comp написал(а):
Игорь_Vasinsky
ага, не подумал, линк не дашь где можно этот кэш покурить?
ага, не подумал, линк не дашь где можно этот кэш покурить?
Спустя 1 минута, 33 секунды (25.03.2012 - 20:21) Игорь_Vasinsky написал(а):
нет. линка нет.
Спустя 2 минуты, 30 секунд (25.03.2012 - 20:23) Игорь_Vasinsky написал(а):
но смысл простой.
при формировании страницы - записать в файл её и дергать этот файл, а не таблицы из БД.
обновлять этот файл при изменении контента.
Опять же - если есть мониторинг чего либо на странице (счетчики, вывод самых читаемы новостей и т.д.) - это остаётся так же на динамике.
при формировании страницы - записать в файл её и дергать этот файл, а не таблицы из БД.
обновлять этот файл при изменении контента.
Опять же - если есть мониторинг чего либо на странице (счетчики, вывод самых читаемы новостей и т.д.) - это остаётся так же на динамике.
Спустя 5 минут, 53 секунды (25.03.2012 - 20:29) johniek_comp написал(а):
Игорь_Vasinsky
так ты говоришь про оптимизацию БД, через кэширование. это уж я сам напишу когда буду сам сайт делать, а это пока ядро. ты наверно не понял вопроса, сейчас напишу код 5 мин.
так ты говоришь про оптимизацию БД, через кэширование. это уж я сам напишу когда буду сам сайт делать, а это пока ядро. ты наверно не понял вопроса, сейчас напишу код 5 мин.
Спустя 1 минута, 59 секунд (25.03.2012 - 20:31) Игорь_Vasinsky написал(а):
нет я не говорю про оптимизацию БД, я говорю что если нет изменений контента на странице - не зачем дёргать БД для каждого юзера, т.е. этот момент можно обойти.
Спустя 7 минут, 36 секунд (25.03.2012 - 20:39) YVSIK написал(а):
Хм ?? :huh: я решил этот вопрос так
написал неболшую функцию и подставляю из базы названия страничек и прочие мета теги
вот сама прочтенькая функция правда не айс как может но по мне вполне и устраивает
:) пример конечно как Игорь говорит дергается база и что с того?
писать отделно тхт файл? вот об этом я не думал чтож по случаю попробую
а в базе меня вполне устраивает очень даже легко потом чтобы-то нибыло правит на стадии редактирования если все дописано то вполне возможно перенести и на тхт файл и или ещё как ;)
написал неболшую функцию и подставляю из базы названия страничек и прочие мета теги
вот сама прочтенькая функция правда не айс как может но по мне вполне и устраивает
/*ф вывод названий страниц (функция OutTitle )*/
function OutTitle($name_page)
{
$result = mysql_query("SELECT`titul`,
`meta_d`,
`meta_k`
FROM
`name`
WHERE
`pade` ='$name_page'");
$row = mysql_fetch_assoc($result);
return $row;
}
:) пример конечно как Игорь говорит дергается база и что с того?
писать отделно тхт файл? вот об этом я не думал чтож по случаю попробую
а в базе меня вполне устраивает очень даже легко потом чтобы-то нибыло правит на стадии редактирования если все дописано то вполне возможно перенести и на тхт файл и или ещё как ;)
Спустя 2 минуты, 17 секунд (25.03.2012 - 20:41) YVSIK написал(а):
а да,, осталость только подставлять на главном ТПЛ-е сами выводы так
<meta name="keywords" content="<?php echo $arr['meta_k'] ?>">
<meta name="description" content="<?php echo $arr['meta_d'] ?>">
<title><?php echo $arr['titul'] ?></title>
Спустя 1 минута, 25 секунд (25.03.2012 - 20:42) Игорь_Vasinsky написал(а):
Цитата |
дергается база и что с того? писать отделно тхт файл? |
а ты типо разницы не видишь?
1. динамически формировать страницу используя разные таблицы БД, делая запрос или несколько запросов
2. получить файл в строку и вывести.
Ювсик, а как твоя функция будет работать с БД если переменными коннект и выбор БД определён?
Спустя 2 минуты, 6 секунд (25.03.2012 - 20:44) johniek_comp написал(а):
Цитата |
не зачем дёргать БД для каждого юзера, т.е. этот момент можно обойти. |
так это и есть оптимизация.
ну вот что написал:
Свернутый текст
<?php
defined('MEX') or die("Нет доступа");
class View
{
public static function Factory($view, $data)
{
$file = $_SERVER['DOCUMENT_ROOT'] .'/views/view_'.$view.'.php';
if(!file_exists($file))
{
engine :: NotFound();
}
else
{
extract($data);
ob_start();
include_once $file;
$content = ob_get_contents();
ob_end_clean();
ob_start();
include_once $_SERVER['DOCUMENT_ROOT'] .'/views/BASIC.php';
$view = ob_get_contents();
ob_end_clean();
echo $view;
}
}
}
реализация оставляет желать лучшего, вот пришел за советом
в данном случае подключаемый вид
<form action="" method="POST" />
<input type="text" name="data"><br>
<input type="submit">
</form><br>
<?php echo isset($result) ? $result : null; ?>
а views/BASIC.php
<h3>Верх!</h3>
<?php echo $content; ?>
<h3>Низ</h3>
вот получается

а надо динамически это все держать
Спустя 1 минута, 48 секунд (25.03.2012 - 20:46) YVSIK написал(а):
Игорь_Vasinsky
ну вопервых нужна будет только одна переменная в которую я складываю в массив
и уже из массива выбираю
вот
ну и не показаны как определены константы но они есть уже к конфиге !!
ну вопервых нужна будет только одна переменная в которую я складываю в массив
и уже из массива выбираю
вот
// это сответствие названия страниц (массив)
$hame_p = array (
1 =>HOME, //MVC-CMV
3 =>ADVERTISING, //РЕКЛАМА
2 =>LINKSM, //MySQL-PhpMyAdmin
4 =>UBUNTA, //Убунта
5 =>SERVERS, //Сервер-VirtualHost
7 =>CHUMI, //chumikan
6 =>APACHS //Аpache2 - РНР-5
);
$name = $_GET['page']; // берем из урла № страницы!
// достать нужный элемент по значению
$two = $hame_p[$name];
/*получаем массив значений из базы! для нужной страницы*/
//при помощи своей функции!!
$arr = OutTitle($two);
/* тут добавить оператор иф чтоб по дефоту небыло нотисов на
будущее! */
ну и не показаны как определены константы но они есть уже к конфиге !!
Спустя 2 минуты, 56 секунд (25.03.2012 - 20:49) YVSIK написал(а):
Игорь_Vasinsky дык сделай отделню табличку в базе и всего-то
зачем делать все в разных местах?
зачем делать все в разных местах?
Цитата |
1. динамически формировать страницу используя разные таблицы БД, делая запрос или несколько запросов |
Спустя 3 минуты, 15 секунд (25.03.2012 - 20:52) Игорь_Vasinsky написал(а):
ды ты говоришь про свой 2х страничный сайт в бд которого держишь только мета теги, а я тебе про ёмкий ресурс со множеством динамичного контента.
1. "статические" страницы
2. материал c комментариями
3. сами кометарии
4. товары интернет магазина
и много е другое, где есть смысл использования ФК.
вообще не понял что ты сказал ээтим кодом.
вообщем я не въехал в тему - всем спасибо за внимание.
с 2мя гениями MVC уж спорить не буду.
1. "статические" страницы
2. материал c комментариями
3. сами кометарии
4. товары интернет магазина
и много е другое, где есть смысл использования ФК.
вообще не понял что ты сказал ээтим кодом.
вообщем я не въехал в тему - всем спасибо за внимание.
с 2мя гениями MVC уж спорить не буду.
Спустя 1 час, 2 минуты, 16 секунд (25.03.2012 - 21:55) Invis1ble написал(а):
johniek_comp
ты ж PHP-ниндзя, посмотри как это делается в твоей любимой кохане
да, и почитай что такое factory
ты ж PHP-ниндзя, посмотри как это делается в твоей любимой кохане
да, и почитай что такое factory
Спустя 9 минут, 41 секунда (25.03.2012 - 22:04) johniek_comp написал(а):
Invis1ble
зачем мне читать про фабрику если я её не буду применять, ибо грешно сие содияние
зачем мне читать про фабрику если я её не буду применять, ибо грешно сие содияние
Спустя 11 минут, 52 секунды (25.03.2012 - 22:16) TMake написал(а):
johniek_comp тривиально, но направление верное.
Пересмотри что бы шаблоны можно было гибко менять.
Пересмотри что бы шаблоны можно было гибко менять.
Спустя 9 минут, 24 секунды (25.03.2012 - 22:26) johniek_comp написал(а):
stepan
единственный поддержал с ювсиком, спасибо!
я уже написал, только один момент пугает
контроллер
осн. шаблон
получаю такой title
собсно можно добавлять любые параметры
единственный поддержал с ювсиком, спасибо!
я уже написал, только один момент пугает
Свернутый текст
<?php
defined('MEX') or die("Нет доступа");
class View extends setting
{
public static function Factory($view, $title, $data)
{
$file = $_SERVER['DOCUMENT_ROOT'] .'/views/view_'.$view.'.php';
if(!file_exists($file))
{
engine :: NotFound();
}
else
{
extract($data);
ob_start();
include_once $file;
$content = ob_get_contents();
ob_end_clean();
// ГОВНОКОД!
ob_start();
include_once $_SERVER['DOCUMENT_ROOT'] .'/views/BASIC.php';
$view = ob_get_contents();
ob_end_clean();
echo $view;
}
}
}
контроллер
Свернутый текст
<?php
defined('MEX') or die("Нет доступа");
class user extends route
{
public function index()
{
$data = array();
if(isset($_POST['data']))
{
$data['result'] = $_POST['data'];
}
View::Factory('user', 'Вход', $data); // второй параметр это титл нужной страницы
}
}
осн. шаблон
<title>MVC framework: <?php echo $title; ?></title>
<h3>Верх!</h3>
<?php echo $content; ?>
<h3>Низ</h3>
получаю такой title
<title>MVC framework: Вход</title>
собсно можно добавлять любые параметры
Спустя 4 минуты, 23 секунды (25.03.2012 - 22:30) johniek_comp написал(а):
Да эта штука гибче и лучше коханы выходит!!!
Спустя 3 минуты, 34 секунды (25.03.2012 - 22:33) YVSIK написал(а):
Цитата (johniek_comp @ 25.03.2012 - 23:30) |
Да эта штука гибче и лучше коханы выходит!!! |
а теперь переведи что и как гибче
Спустя 1 минута, 24 секунды (25.03.2012 - 22:35) johniek_comp написал(а):
YVSIK
я тебе могу по скайпу рассказать если надо
я тебе могу по скайпу рассказать если надо
Спустя 33 секунды (25.03.2012 - 22:35) TMake написал(а):
johniek_comp для шаблона достаточно передавать 2 параметра (название_шаблона, массив_переменных), 3 необязательный параметр (проверка_на_возвращения_результата[по умолчанию не возвращать])
в самом шаблоне бы организовал вывод через $this->qwe;
а в классе View искал бы переменные через __get()
в самом шаблоне бы организовал вывод через $this->qwe;
а в классе View искал бы переменные через __get()
Спустя 22 минуты, 54 секунды (25.03.2012 - 22:58) johniek_comp написал(а):
stepan
по подробнее, желательно кодом
по подробнее, желательно кодом

Спустя 5 минут, 20 секунд (25.03.2012 - 23:04) Invis1ble написал(а):
ТС видимо пытается переизобрести кохановский View, наверное потому что код содержит Фатальную Ошибку
Спустя 59 секунд (25.03.2012 - 23:05) m4a1fox написал(а):
johniek_comp
ИМХО! Глупо вот это
Первое, не легче определить data как не обязателен... после необходимость в проверке - отпадает, и таким образон, если ты уже формируешь шаблон, и передаешь что то, то приравниваешь к массиву и после выводишь... тогда можно сократить так
ИМХО! Глупо вот это
class user extends route
{
public function index()
{
$data = array();
if(isset($_POST['data']))
{
$data['result'] = $_POST['data'];
}
View::Factory('user', 'Вход', $data); // второй параметр это титл нужной страницы
}
}
Первое, не легче определить data как не обязателен... после необходимость в проверке - отпадает, и таким образон, если ты уже формируешь шаблон, и передаешь что то, то приравниваешь к массиву и после выводишь... тогда можно сократить так
class user extends route
{
public function index()
{
$data = array();
$data['result'] = $_POST['data'];
View::Factory('user', 'Вход', $data); // второй параметр это титл нужной страницы
}
}
Спустя 29 секунд (25.03.2012 - 23:05) Invis1ble написал(а):
Цитата |
Да эта штука гибче и лучше коханы выходит!!! |
какая штука и в каком месте, интересно?
Спустя 4 минуты, 10 секунд (25.03.2012 - 23:09) m4a1fox написал(а):
Но я бы не стал пользоваться статикой как шаблоном. Не легче ли его переопределить из route и там его написать а потом просто вызывать как обычно через $this->?
Спустя 1 минута, 6 секунд (25.03.2012 - 23:10) johniek_comp написал(а):
Invis1ble
в кохану с первого дня написание этой штуки не заглядывал
m4a1fox
угу, перепишу, только завтра уже
в кохану с первого дня написание этой штуки не заглядывал

m4a1fox
угу, перепишу, только завтра уже

Спустя 1 минута, 23 секунды (25.03.2012 - 23:12) m4a1fox написал(а):
johniek_comp
Цитата |
угу, перепишу, только завтра уже |
Ты так удачи..

Спустя 52 секунды (25.03.2012 - 23:13) Invis1ble написал(а):
Если не заглядывал - почему пишешь, что гибче? Лишь бы ляпнуть?
Спустя 14 секунд (25.03.2012 - 23:13) johniek_comp написал(а):
m4a1fox
у меня __autoload стоит, на нем все держится, так удобнее
у меня __autoload стоит, на нем все держится, так удобнее
Спустя 1 минута, 10 секунд (25.03.2012 - 23:14) johniek_comp написал(а):
Invis1ble
разочаровался я в кохане, пробую свою написать
как бы это ужасно не звучало!
разочаровался я в кохане, пробую свою написать



Спустя 2 минуты, 6 секунд (25.03.2012 - 23:16) Invis1ble написал(а):
Круто. Как напишешь - обязательно покажи ее миру.
Спустя 7 минут, 12 секунд (25.03.2012 - 23:23) m4a1fox написал(а):
johniek_comp
Цитата |
у меня __autoload стоит, на нем все держится, так удобнее |
Цитата |
Лишь бы ляпнуть? |
Спустя 1 минута, 39 секунд (25.03.2012 - 23:25) Invis1ble написал(а):
johniek_comp
О, забыл спросить.
По каким причинам разочаровался?
О, забыл спросить.
По каким причинам разочаровался?
Спустя 6 минут (25.03.2012 - 23:31) m4a1fox написал(а):
johniek_comp
Давай так.... если ты сейчас логически докажешь необходимость вот этой строки
Давай так.... если ты сейчас логически докажешь необходимость вот этой строки
Цитата |
у меня __autoload стоит, на нем все держится, так удобнее |
Я обещаю, что больше ни одного плохого слова в твой адресс не скажу.
Спустя 7 минут, 34 секунды (25.03.2012 - 23:39) caballero написал(а):
Цитата |
О, забыл спросить. По каким причинам разочаровался? |
не хватило знаний или терпения разобратся
и как все новички по наивности решил что написать свое будет проще и работать оно будет лучше
Спустя 43 минуты, 3 секунды (26.03.2012 - 00:22) m4a1fox написал(а):
Ну собственно о чем я и говорил!
Спустя 13 часов, 12 минут, 39 секунд (26.03.2012 - 13:34) johniek_comp написал(а):
m4a1fox
Invis1ble
Invis1ble
Цитата |
не хватило терпения разобратся и как все новички по наивности решил что написать свое будет проще и работать оно будет лучше |
Спустя 40 минут, 31 секунда (26.03.2012 - 14:15) m4a1fox написал(а):
johniek_comp
Ну собственно кто бы сомневался. Я тут так, о морали говорю. Лично мне не импонирует что-то говорить/писать когда я в этом не разбираюсь. откровенно говоря меня такие люди немножко не нравятся
(напомню: на форуме оскорбления других участников запрещены, поэтому выразить свою мысли в полном объеме русского языка увы не получается), из-за этого могу сделать вывод что ТС, вы просто не разбираетесь в этом... то есть по сути вы не нас обманываете, а в первую очередь - себя. Перед самим собой не стыдно?
Ну собственно кто бы сомневался. Я тут так, о морали говорю. Лично мне не импонирует что-то говорить/писать когда я в этом не разбираюсь. откровенно говоря меня такие люди немножко не нравятся


Спустя 1 минута, 21 секунда (26.03.2012 - 14:16) Игорь_Vasinsky написал(а):
да какая разница, ну нравиться ему думать и говорить что он знает - пусть.
Спустя 3 минуты, 19 секунд (26.03.2012 - 14:19) YVSIK написал(а):
Цитата (Игорь_Vasinsky @ 26.03.2012 - 15:16) |
да какая разница, ну нравиться ему думать и говорить что он знает - пусть. |
ну наконецто НАКОНЕЦ!
мудрые слова говоришь!!
ему не много-бы такту и все было-бы пучком .

Спустя 3 минуты, 51 секунда (26.03.2012 - 14:23) Игорь_Vasinsky написал(а):
Свернутый текст
просто чреваты подсказки от таких подсказчиков.
Спустя 24 минуты, 38 секунд (26.03.2012 - 14:48) m4a1fox написал(а):
YVSIK
Да как бы разницы лично мне нет ни какой... не люблю когда бахваляться попусту.
Да как бы разницы лично мне нет ни какой... не люблю когда бахваляться попусту.
Спустя 13 минут, 24 секунды (26.03.2012 - 15:01) johniek_comp написал(а):
m4a1fox
так а в чем же я не разбираюсь, уточни
так а в чем же я не разбираюсь, уточни
Спустя 5 минут, 8 секунд (26.03.2012 - 15:06) m4a1fox написал(а):
johniek_comp
О мой мозг. Секунду.
О мой мозг. Секунду.
Спустя 2 минуты, 20 секунд (26.03.2012 - 15:09) m4a1fox написал(а):
Вот такой пост
Цитата |
ИМХО! Глупо вот это class user extends route { public function index() { $data = array(); if(isset($_POST['data'])) { $data['result'] = $_POST['data']; } View::Factory('user', 'Вход', $data); // второй параметр это титл нужной страницы } } Первое, не легче определить data как не обязателен... после необходимость в проверке - отпадает, и таким образон, если ты уже формируешь шаблон, и передаешь что то, то приравниваешь к массиву и после выводишь... тогда можно сократить так class user extends route { public function index() { $data = array(); $data['result'] = $_POST['data']; View::Factory('user', 'Вход', $data); // второй параметр это титл нужной страницы } } |
Твой ответ был
Цитата |
m4a1fox у меня __autoload стоит, на нем все держится, так удобнее |
Я ответил тебе
Цитата |
johniek_comp Давай так.... если ты сейчас логически докажешь необходимость вот этой строки Цитата у меня __autoload стоит, на нем все держится, так удобнее Я обещаю, что больше ни одного плохого слова в твой адресс не скажу. |
И еще раз... сможешь ответить и логически пояснить к чему ты сказал что у тебя __autoload стоит? Я обещаю официально к тебе больше никогда не придираться и считать тебя не просто любителем почесать язык, а настоящим ООП ПРОГРАММИСТОМ.
Спустя 5 минут, 29 секунд (26.03.2012 - 15:14) johniek_comp написал(а):
m4a1fox
Кто сказал что я программист? Мне просто нравится это, ни какой цели не преследую...
Кто сказал что я программист? Мне просто нравится это, ни какой цели не преследую...
Цитата |
Но я бы не стал пользоваться статикой как шаблоном. Не легче ли его переопределить из route и там его написать а потом просто вызывать как обычно через $this->? |
перечитай! вот тебе и autoload

Спустя 3 минуты, 13 секунд (26.03.2012 - 15:17) m4a1fox написал(а):
johniek_comp
Цитата |
Кто сказал что я программист? Мне просто нравится это, ни какой цели не преследую... |
Вопрос снимается.
Цитата |
перечитай! вот тебе и autoload |
Но это мой ответ... А твой я так и не увидел.

Спустя 3 минуты, 2 секунды (26.03.2012 - 15:21) johniek_comp написал(а):
m4a1fox
убойный аргумент "не легче" ! как меня спасет $this->, ну пишу я через статику и че? разница в view::factory и $this->??? т.к. на форуме маты запрещены, то позвони мне на скайп я тебе популярно объясню про статику, про программистов и вообще про жизнь
как это не твой пост? посан ты че гонишь?
убойный аргумент "не легче" ! как меня спасет $this->, ну пишу я через статику и че? разница в view::factory и $this->??? т.к. на форуме маты запрещены, то позвони мне на скайп я тебе популярно объясню про статику, про программистов и вообще про жизнь

как это не твой пост? посан ты че гонишь?
Спустя 11 минут, 4 секунды (26.03.2012 - 15:32) YVSIK написал(а):
Свернутый текст
щя ) все)) по домам!
разошлись в разные стороны ) тут не мето выяснения кто и что кому сказал
разошлись в разные стороны ) тут не мето выяснения кто и что кому сказал
тут для ответов и советов и поддержания в своих начинаниях, а не для выяснений отношений, как таковых,
Спустя 20 минут, 17 секунд (26.03.2012 - 15:52) m4a1fox написал(а):
вопросов больше не имею 
Вот ты хоть тресни я не понимаю. Причем тут твой ответ что у тебя __autoload();?

Вот ты хоть тресни я не понимаю. Причем тут твой ответ что у тебя __autoload();?
_____________
