- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Здорово!
Спасибо, буду пробовать. Как вы считаете, так правильнее будет?
Т.е. вместо кучи кода использовать подобный шаблон.
От этой манипуляции что-то в + изменится, скорость к примеру или уменьшится кол-во запросов (хотя у меня нет бд, на файле работает все)
Здорово!
Спасибо, буду пробовать. Как вы считаете, так правильнее будет?
Т.е. вместо кучи кода использовать подобный шаблон.
От этой манипуляции что-то в + изменится, скорость к примеру или уменьшится кол-во запросов (хотя у меня нет бд, на файле работает все) :)
Если у вас будет десяток методов, которые можно свести к одному, и придётся что-то менять, то сами понимаете, что придётся их все лопатить, а так достаточно изменить что-то в одном.
Но если вдруг возникнут какие-то отдельные дополнительные условия для 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?