Коллеги, вопрос ведь заключается не только в контроле поставленных задач, а в их правильной оценке трудозатрат, расписанию задач и выполнению.
Если человек не имеет отношения к разработке, является просто предпринимателем, ему сложно оценивать реальные сроки реализации.
Как добиться того, чтоб сайты (которые пишутся с помощью php-фреймворков) на локальном веб-сервере просто летали?
Какой локальный сервер использовать?
Пробовал много чего: vagrant, ubuntu-сервер разворачивал сам. Но эти варианты для меня не удобны.
NGINX вообще ни разу не пробовал. Его хвалят, но как его устанавливать и настраивать в Windows я не нашёл.
Каким образом возможно отправив один ajax получать данные и сразу же их обрабатывать, не дожидаясь окончания запроса?
т .е я хочу получать json массивы(ссылки на фото) и сразу же их выводить в рамках одного запроса
на сервере крутится php - codeigniter.
не хочется пулять много ajax на запрос за каждой порцией данных.(из-за постоянных переоткрываний соединений с дб ,перезагрузки ядра фреймворка и т.д ,)
...хочется чтоб все обработывалось одним процессом на сервере
в сторону какой технологии смотреть, подскажите composer библиотечку и т.п?
<?php
namespace lib;
class Router {
// Может rules все таки?))
private $rulls; // Зачем тут отступ?
// phpDocumentor - ваш друг, прописывайте ОБЯЗАТЕЛЬНО типы данных.
private $uri;
private $controller;
private $params = [];
function __construct(){
$this->setUri(); // У вас нет такого метода, есть setURI
$this->setController();
$this->setParams();
$this->setRulls();
}
// Что будет, если $_SERVER['REQUEST_URI'] = '/?', или '/////'?
private function setURI(){
// Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
if($_SERVER['REQUEST_URI'] != '/'):
$this->uri = explode('/',trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
endif;
}
// Я правильно понимаю, вы хотите сказать, что контроллер - это некий элемент массива (похоже string|null)? Обычно контроллер - это объект...
private function setController(){
$this->controller = array_shift($this->uri);
}
// В этом методе вы по тупому копируете элементы, зачем?
private function setParams(){
// Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
foreach ($this->uri as $value):
$this->params[] = $value;
endforeach;
}
private function setRulls(){
// NO! загрузка данных - это НЕ задача роутера, от слова СОВСЕМ
file_exists(SITE_ROOT.DS.'routing'.DS.'rulls.php') ? $this->rulls = include(SITE_ROOT.DS.'routing'.DS.'rulls.php') : die('Файл с конфигурацией роутинга где-то затерялся, извини.');
}
// В методе ничего нечего спасать, просто удалите его.
public function run(){
// НЕ ИСПОЛЬЗУЙТЕ ГЛОБАЛЬНЫЕ ПЕРМЕННЫЕ
$_REQUEST = array_merge($_REQUEST, $this->params);
$controller = '\\controllers\\'.$this->rulls[$this->controller]['controller'];
$action = $this->rulls[$this->controller]['action'];
$controller = new $controller; // Что будет, если такого класса нет?
$controller->$action(); // Что будет, если такого метода нет?
}
}
<?php
// PSR-1, PSR-2, PSR-4 Читаем и пользуем!
// namespace все дела... "Model_admin" - это прошлое.
// phpDocumentor - твой друг, прописывай всюду типы данных
class Model_admin extends Model
{
// Лишний перевод строки
private $name;
private $password;
private $code;
private $mail;
// Не информативное название. get model admin... что бы это значило...
public function get($login, $password) {
// Где проверка аргумантов? Влететь может что угодно
$this->name = $login;
$this->password = $password;
// Модель НЕ должна управлять подключением к БД, это должно выполняться выше в коде
$this->db_connect();
// Код вообще проверялся?)) у вас закрывающей строки нет.
$result = msql_query("SELECT 'login', 'password', 'mail' FROM 'admin_authorization'";
// сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
$arr = mysql_fetch_array($result);
// Зачем нужен цикл, это дро*ба БД!!! Вытягиваете одну запись по логину и проверяете соответствует ли пароль
do {
// Лишний перевод строки
if ($login === $arr['login']) {
// Лишний перевод строки
if (
md5( md5( trim( $password ))) === $arr['password']
) {
$this->mail = $arr['mail'];
$this->random_code();
// Перед return лучше делать перевод строки
return true;
}
// Лишний перевод строки
}
// сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
// Присваивание в условиях управляющих кнострукций лучше не делать, это операции разного характера
} while ($arr = mysql_fetch_array($res));
return false;
// Лишний перевод строки
}
private function random_code($length = 15) {
// Где проверка аргумантов? Влететь может что угодно
$symbols = '0123456789abcdefghijklmnopqrstuvwxyz_-~!+*%$#&';
for ($i = 0; $i < (int)$length; $i++)
{
$num = rand (1, strlen ($symbols));
$this->code .= substr ($symbols, $num, 1);
}
// сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
$bool_update = mysql_query('UPDATE "admin_authorization" SET code="'.$this->code.'" WHERE login="'.$this->name.'"');
// Вот так писать плохо, всегда используйте фигурные скобки.
if ($bool_update) $this->send_code();
// Лишний перевод строки
}
private function send_code() {
// Модель НЕ должна отправлять письма, под отправку обычно пишется отдельная подсистема/сервис
mail ($this->mail, "Admin code", $this->code);
}
public function check_code($user_code) {
// Где проверка аргумантов? Влететь может что угодно
// SQL инъекция!!!!
// сие уже deprecated, забудьте про mysql_*** функции, используйте PDO
$this->code = mysql_query("SELECT 'code' FROM admin_authorization WHERE code='".$user_code."'");
// Вот так писать плохо, всегда используйте фигурные скобки.
if ($this->code != '') return true;
}
// Лишний перевод строки
}
Как сделать ns сервер на php для создания хостинга?
в чем преимущество?
Как сделлать нормальный проект без хороших знаний?
Есть друг у которого есть бизнес и так он знает что я занимаюсь разработкой сайтов и с деньгами щас у меня туго , он сказал мне сделать интернет магазин небольшой за очень хорошую сумму.
Прошу подсказать cms для такого уровня знаний чтобы можно было сделать магазин более менее нормальный.
if ($handle = opendir($dir)) {
$path = __DIR__ . '/50/images/';
if (!is_dir($path)) {
throw new \RuntimeException(sprintf('Incorrect path: %s', $path));
}
$foundFiles = array_diff(scandir($path), ['..', '.']);
// Warning, it could be folders to
echo count($foundFiles);
Устал от работы на дядю.
Откуда мне брать портфолио?
Приходит в голову только cms с открытым кодом написать как пример работы.