- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Здорово!
Спасибо, буду пробовать. Как вы считаете, так правильнее будет?
Т.е. вместо кучи кода использовать подобный шаблон.
От этой манипуляции что-то в + изменится, скорость к примеру или уменьшится кол-во запросов (хотя у меня нет бд, на файле работает все)
Здорово!
Спасибо, буду пробовать. Как вы считаете, так правильнее будет?
Т.е. вместо кучи кода использовать подобный шаблон.
От этой манипуляции что-то в + изменится, скорость к примеру или уменьшится кол-во запросов (хотя у меня нет бд, на файле работает все) :)
Если у вас будет десяток методов, которые можно свести к одному, и придётся что-то менять, то сами понимаете, что придётся их все лопатить, а так достаточно изменить что-то в одном.
Но если вдруг возникнут какие-то отдельные дополнительные условия для one, two и т.д., ну например для каждого из них изменится хост - для one https_://www.googleapisxxxx.com, для two - https_://www.bbbaxxxx.com, ну или ещё что-то, когда нельзя что-то универсилизировать, то метод обрастёт кучей if, else. Но в данном случае вряд ли, просто пример неудачный - что пришло в голову.
Количество запросов не уменьшится да и выигрыша в скорости не будет, если вы конечно не планировали наплодить миллион однотипных методов.
Просто таким образом удобнее поддерживать и соправождать и вообще-то так оно и должно быть
Процентов 99 программистов задающих вопрос в РФ используют коды и ждут магических ответов способных заставить работать эти же самые коды. Задать человеческий вопрос, ну типа - хочу чтобы когда тут нажимали стало красным, а когда отпускали стало зеленым - органически невозможно. Любой кто захочет отвечать должен декодировать процитированные коды, дешифровать их до смысла человеческого вопроса про красным и зеленым.
Я не смог дешифровать, могу только судить по шаблону кодов, который намекает на кложи или на переменные переменных.
Например есть базовая функция getcat() и возможно пригодятся ее расширения вроде getcat_one() getcat_two() getcat_three() и тд. Использование расширение диктует какое-то событие или условие, которое мы можем назвать вот так one, two, three. Становится очевидным что если приделать название базовой функции к названию опции, то мы получаем название нужной нам функции, например
$func=$base_name.'_'.$event_name;
/* и вызываем ее */
$$func();
Если не угадал - расскажите на человеческом языке что означают те самые коды про ютубу.
$func=$base_name.'_'.$event_name;
/* и вызываем ее */
$$func();
Если не угадал - расскажите на человеческом языке что означают те самые коды про ютубу.
Из примера ТС переменные переменных не подойдут, ибо всё свелось к одному методу
Swir, а, понял, по вашему коду понял - ему нужна карта, чтобы из массива брать данные по алиасу, или вроде того.
Отсюда сразу мысли пойти в этот конфиг и научить его выдавать $this->config->catvideos[$name];
Swir, а, понял, по вашему коду понял - ему нужна карта, чтобы из массива брать данные по алиасу, или вроде того.
Отсюда сразу мысли пойти в этот конфиг и научить его выдавать $this->config->catvideos[$name];
Ну ТС только учится и постепено придёт к пониманию от простого к сложному. Как и мы когда-то
Спасибо.
Да, я только учусь.
Попробую описать свою систему.
Базы данных нет - принципиально.
Все данные сохраняю в settings.txt в закодированном виде.
Имеется админка со своим конфигом setup/config.php
Сама "система управления" имеет свой конфиг includes/Config.php
Из-за двух конфигурационных файлов я и стал задумываться о том, что что-то не так.
Изначально система была без админки и вся очень кривая (даже я сообразил).
Конфиг панели управления setup/config.php выглядит так
if (file_exists($filename)) {
$infotxt = file_get_contents($filename);
$settings = unserialize(base64_decode($infotxt));
$url = $settings['url'];
..........
ЕЩЕ КОД
..........
$zerocatename = $settings['zerocatename'];
$zerocatesearch = $settings['zerocatesearch'];
$zerocatevideos = $settings['zerocatevideos'];
$zeronumber = $settings['zeronumber'];
$zerosortingresults = $settings['zerosortingresults'];
$onecatename = $settings['onecatename'];
$onecatesearch = $settings['onecatesearch'];
$onecatevideos = $settings['onecatevideos'];
$onenumber = $settings['onenumber'];
$onesortingresults = $settings['onesortingresults'];
..........
ЕЩЕ КОД
..........
$admin_username = $settings['admin_username'];
$admin_password = $settings['admin_password'];
} else {
echo "The file configuration file is missing. Please run the setup again";
}
?>
Так выглядит конфиг самой "cms"
$filename="setup/settings.txt";
include ("setup/config.php");
$config = array(
// Your Site URL
"url" => "$url",
..............
ЕЩЕ КОД
..............
//Slider
"zerocatename" => "$zerocatename",
"zerocatesearch" => "$zerocatesearch",
"zerocatevideos" => "$zerocatevideos",
"zeronumber" => "$zeronumber",
"zerosortingresults" => "$zerosortingresults",
//Category Home Page Video
"onecatename" => "$onecatename",
"onecatesearch" => "$onecatesearch",
"onecatevideos" => "$onecatevideos",
"onenumber" => "$onenumber",
..............
ЕЩЕ КОД
..............
// Server's timezone for more accurate data
"timezone" => "Russia/Moscow",
// Cache Data - If you notice anomalies, disable this. You should enable this when you get high hits
"cache" => TRUE,
// Enable mode_rewrite? e.g. user/login instead of index.php?a=user/login
"mod_rewrite" => TRUE,
// Enable Compression? Makes your website faster
"gzip" => TRUE,
);
// Include core.php
include ('Core.php');
?>
1. Подключается файл с закодированными, ранее сохраненными данными $filename="setup/settings.txt";
2. Подключается конфиг include ("setup/config.php");
ВОТ И ПОЛУЧИЛОСЬ НЕЧТО. :)
То есть, конфиг самой "cms" вытягивает данные из файла setup/settings.txt декодируя их при помощи setup/config.php
Далее, includes/Youtube.class.php дергает все из includes/Config.php
вставляет полученные данные в
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config["onecatevideos"]}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}
protected function gettwocate($id){
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config["twocatevideos"]}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}
я еще не переделал в предложенный Swir код но буду переделывать.
вариант ниже я не понял (пока)
После всех этих манипуляций, полученный результат уходит в шаблон где выводится при помощи данных полученных из includes/Config.php
Получается, чтобы сформировать страницу с результатом, файл includes/Config.php задействуется как минимум два раза, сначала отправляет поисковый запрос с помощью Youtube.class.php, потом выводит полученный результат в шаблон при помощи самого себя includes/Config.php ...вроде так... :)
Я понимаю, что все это можно сократить в разы, понимаю что сейчас у меня много одних и тех же операций повторяется, вот и пытаюсь как-то все уменьшить, упорядочить...
Но что и как делать не понимаю, вот и взялся пока за редактирование Youtube.class.php
тогда метод protected function getcates($nom)
Спасибо, действительно не нужен
Спасибо.
Да, я только учусь.
Ну так, с наскоку, вашу архитектуру не понять :)
Просто несколько замечаний:
Зачем инициализировать столько новых переменных
$zerocatename = $settings['zerocatename'];
$zerocatesearch = $settings['zerocatesearch'];
$zerocatevideos = $settings['zerocatevideos'];
если сразу можно использовать элемент массива $settings['zerocatename'] там, где вы собираетесь использовать $zerocatename ну и т.д. Экономьте ресурсы.
Запись переменных в качестве значений элементов массива не требует кавычек, а сами ключи старайтесь заключать в одинарные кавычки
$config = array(
// Your Site URL
'url' => $url,
//Slider
'zerocatename' => $zerocatename,
'zerocatesearch' => $zerocatesearch,
Ну и пытайтесь осваивать тот же mysql
Как говорится, абы желание и всё получится
Спасибо, буду исправлять.
Зачем инициализировать столько новых переменных
$zerocatename = $settings['zerocatename'];
$zerocatesearch = $settings['zerocatesearch'];
$zerocatevideos = $settings['zerocatevideos'];
если сразу можно использовать элемент массива $settings['zerocatename'] там, где вы собираетесь использовать $zerocatename ну и т.д. Экономьте ресурсы.
Я правильно понял, можно использовать
$settings['zerocatename'];
вместо
$zerocatename = $settings['zerocatename']; ?
В таком случае
// Construct URL
$part = "snippet";
$this->url = "https://www.googleapis.com/youtube/v3/search?videoEmbeddable=true&key={$this->key}&part=$part&order=data&maxResults=5&q={$this->config[$nom.'catevideos']}&type=video";
// Get Data
$data = $this->http(TRUE);
foreach ($data->items as $yt) {
$html .= $this->listQueryVideo($yt);
}
return $html;
}
будет работать?
Спасибо.
Спасибо, буду исправлять.
Я правильно понял, можно использовать
$settings['zerocatename'];
вместо
$zerocatename = $settings['zerocatename']; ?
В таком случае
будет работать?
Спасибо.
Что я увидел
Грубо говоря, у вас
$a = $settings['a'];
$b = $settings['b'];
$c = $settings['c'];
Затем вы делаете
$config = array(
'a'=>$a,
'b'=>$b,
'c'=>$c,
);
В итоге мы по сути получаем $config = $settings;
Так почему сразу не использовать $settings?