Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

devian3000

  • 30
    вклад
  • 0
    вопросов
  • 73
    ответа
  • 23%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Внезапно упала репликация mysql?

    devian3000 @devian3000
    'Table 'mybase.delayed_jobs' doesn't exist'

    Неужели данная строка вам ни о чём не говорит? =)

    Проверьте что на мастере и на слейве есть данная таблица. Видимо она где-то была создана но не залоггировалось или вы сменили название базы.
    Возможно даже дропнули её на слейве.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Client Side Filtering vs Server Side Filtering?

    devian3000 @devian3000
    фильтруйте и там и там.
    на стороне клиента, чтобы не грузить сервер и не рождать по миллиону запросов + пользователь сразу всё видит.
    на стороне сервера чтобы данные были именно теми которые вы ожидаете.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как исключить из роута в main.php модуль test?

    devian3000 @devian3000
    Примерно так. Регулярку только проверьте.
    <module: (?!test)\w+>/<controller: \w+ >
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Apache2 видит файлы, но не видит папки?

    devian3000 @devian3000
    проверьте настаройки хоста. Скорее всего у вас корнем стоит именно эта папка. Поэтому он её и не видит. Она как бы вне каталога.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Команда git push перестала работать. Как решить проблему?

    devian3000 @devian3000
    Так у вас Bibucket недоступен. Не пингуется.
    Сперва решите проблемы на уровне сети. Далее всё само заработает.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Кто может привести пример реального использования магических методов в php?

    devian3000 @devian3000
    Yii2 Db ActiveRecord магия повсеместна.
    Zend Skeleton Application - работает на __invoke

    И ещё куча чего использует их предположим такой код.

    class Test{
    
       private $id = 10;
    
       public function __get( $name ){
             $name = ucfirst($name);
             return call_user_func( [ $this, "get{$name}"] );
       }
    
        public function getId(){
              return $this->id * 10;
        }
    
    }
    
    $t = new Test();
    
    echo $t->id; // Out 100
    
    Это совсем утрированный пример. Так можно getId сделать protected или private. и внутри метода творить что угодно. а ощущение будет что обращаются к свойству. Ну и т.д. c __isset __unset __set и прочими.
    
    __sleep __wakeup ещё не доводилось на практике использовать, но где-то несомненно могут понадобятся.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как переписать и переключить библиотеки, чтобы заработал данный код JQUERY на wordpress?

    devian3000 @devian3000
    Я имею ввиду вот это уберите
    <script src="http://yastatic.net/jquery/2.1.4/jquery.min.js"></script>


    А вот это в footer в самый низ

    <script src="http://yastatic.net/jquery/cookie/1.0/jquery.cookie.min.js"></script>
            <script type="text/javascript">
            $(function() {
                // Проверяем запись в куках о посещении
                // Если запись есть - ничего не делаем
                if (!$.cookie('hideModal')) {
               // если cookie не установлено появится окно
               // с задержкой 5 секунд
                var delay_popup = 5000;
                setTimeout("document.getElementById('overlay').style.display='block'", delay_popup);
                }
                // Запоминаем в куках, что посетитель уже заходил
                $.cookie('hideModal', true, {
                // Время хранения cookie в днях
                    expires: 7,
                    path: '/'
                });
            });
            </script>
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • ASP MVC 5. Как передать строку в контроллер POST методом.?

    devian3000 @devian3000
    Стоит попробовать так.

    data: { xmlString: xml },

    public void Form(string xmlString)
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как оптимальнее сделать логику построение отчета?

    devian3000 @devian3000
    Самый простой путь.

    Сводная таблица по записям.
    Триггеры на добавление, обновление и удаление.

    Сперва делаете JOIN и скидываете всё в эту таблицу.
    А далее триггерами она будет обновляться и изменяться.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему получаю пустой ответ при выполнении AJAX запроса?

    devian3000 @devian3000
    Вот сюда внимательно посмотрите.
    <input type="hidden" name="changeprefix">

    Каким образом вы собираетесь найти переменную с именем method в $_POST когда вы её не передаёте?
    У вас в $_POST массиве
    [
       'name' => 'Ник',
       'prefix' => 'prefix',
       'changeprefix' => '',
    ]


    В свитче только один выбор. Вот он ничего и не возвращает. PHP скрипт падает без вывода.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как задать список разрешенных PHP-файлов?

    devian3000 @devian3000
    В каждой папке. Путь будет в GET параметре PATH.

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

    Вот ссылка на StackOverflow первый же запрос в гугле.
    stackoverflow.com/questions/18406156/redirect-all-...
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как лучше организовать VPN в данной ситуации?

    devian3000 @devian3000
    Купите Mikrotik или что-то похожее. Купите статичный внешний IP. Настройте на Mikrotik VPN.

    2) Зачем ходить в интернет через VPN? Или вы имеете ввиду подключиться из внешней сети и уже оттуда ходить в инет? Тогда маршрутизация ваше всё. Из VPN сети в Out интерфейс роутера.
    А так невижу смысла, подключаться к роутеру, чтобы потом на него же подключиться через VPN и оттуда идти в интернет.

    3) Подключитесь к VPN со сматфона заходите. Для этого прокиньте роут во внутреннюю(домашнюю) сеть.

    4) Бэкап делайте куда хотите. Делаете VPN соединение на сервере к домашней сети и бэкапте напрямую через VPN соединение сколько угодно. Хотя это глупо, домашнее сетевое хранилище явно не для бэкапов серверов.
    Для бэкапа можно использовать любой софт, находится Гуглом.

    Без UNIX вы ничего не сделаете, вся сеть построена на Unix подобных системах. Asus выкиньте в помойку или отдайте кому-то, для данных задач он не подходит.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Как удалить не используемые функции и строки из библиотеки в C#?

    devian3000 @devian3000
    а) Дезассемблировать (https://www.jetbrains.com/decompiler/). Удалить.
    б) Найти код на гитхабе или ещё где выкачать, удалить, скомпилять.

    Но лучше так не делать, ибо придётся разбираться что удалять что нет. И можно неплохо так библиотеку поломать в неожиданном месте =)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Какие есть хорошие учебники по сайтостроению?

    devian3000 @devian3000
    никаких. Все что ни видел полный шлак.

    Лучше посмотреть какой-нибудь открытый проект, на GitHub таких полно.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Как правильно организовать отправку писем?

    devian3000 @devian3000
    Можно с самого сервера высылать.
    Но в принципе схема правильная.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Правильно ли сделаны связи?

    devian3000 @devian3000
    users -> history по-мойму избыточна.

    если только не хотите смотреть всю историю по пользователю.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как мне замокать компонент который работает с БД?

    devian3000 @devian3000
    Можно ещё так, если PHPUnit.
    (Делаем фейковый объект с нужными методами)
    И в начале
    Yii::$container->set('db', $mockObject );
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как оптимизировать такой код?

    devian3000 @devian3000
    Какая версия Yii? если вторая, то проще сделать наверное так.

    <?php
    
    public static function getFullInfo($id)
      {
        $driverCar = DriverCar::findOne([
          'mifar_card_id' => $id
        ]);
        if (empty( $driverCar ) ) return false;
    	//Если тут одна сущность то делаем так
    	// Но у объекта дожны быть методы getCar и getDriver в которых используется $this->hasOne()
        $car = $driverCar->сar;
        $driver = $driverCar->driver;
    
        $object = array();
    	
        if ($driverCar->сar->use_group_tariff && $driverCar->сar->group_tariff_id)
        {
          $groupTariff = GroupTariff::findOne([
            'id' => $driverCar->сar->group_tariff_id
          ]);
    	  $object = [
    		'town' => $groupTariff->town,
    		'town_center' => $groupTariff->town_center,
    		'km_price' => $groupTariff->km_price,
    	  ]
        }
        else
        {
          $driverTariff = DriverTariff::findOne([
            'driver_id' => $driverCar->driver->id
          ]);
    	  $object = [
    		'town' => $driverTariff->town,
    		'town_center' => $driverTariff->town_center,
    		'km_price' => $driverTariff->km_price,
    	  ]
        }
    	
    	$object = array(
    	    'company' => $driverCar->сar->getCarBrand();
    		'model' => $driverCar->сar->model;
    		'color' => $driverCar->сar->color;
    		'object' = $driverCar->сar->number;
    		'full_name' = $driverCar->driver->getFullName();
    		'serial_number' = $driverCar->driver->serial_number;
    	);
    	
    
        return (object)$object;
      }
      
    //Или так от структуры зависит и логики
      
    class Driver extends ActiveRecord{
    	
    	public function getCar()
    	{
    		return $this->hasOne(Car::className(),['mifar_card_id' => 'id' ])
    			->viaTable('{{%driverCar}}',['driver_id' => 'id']);
    	}
    	
    	public function getTariff(){
    		return $this->hasOne(DriverTariff::className(),['driver_id' => 'id'])
    	}
    	
    }
    
    class Car extends ActiveRecord{
    	
    	public function getTariff(){
    		return $this->hasOne(GroupTariff::className(), ['id' => 'driver_id'])
    	}
    	
    }
      
    interface IGetTariff{
    	public function getTown();
    	public function getTownCenter();
    	public function getKmPrice();
    }
      
    class GroupTariff extends ActiveRecord implements GetTariff{}
    class DriverTariff extends ActiveRecord implements GetTariff{}
      
    class FullDriverCarInfo extends Model{
    	
    	public static function getFullInfo( $driverId ){
    		$driver = Driver::findOne('id'=>$driverId);
    		if( empty($driver) ) return;
    		
    		/** @var $tariff IGetTariff */
    		if( $driver->сar->use_group_tariff && $driver->сar->group_tariff_id ){
    			$tariff = $driver->car->getTariff();
    		}else{
    			$tariff = $driver->getTariff();
    		}
    		
    		$result = array(
    			'town' => $tariff->getTown(),
    			'town_center' => $tariff->getTownCenter(),
    			'km_price' => $tariff->getKmPrice(),
    			'company' => $driver->сar->getCarBrand();
    			'model' => $driver->сar->model;
    			'color' => $driver->сar->color;
    			'object' = $driver->сar->number;
    			'full_name' = $driver->getFullName();
    			'serial_number' = $driver->serial_number;
    		);
    		
    		//Так если это отдельная модель
    		$this->setAttributes( $result );
    		
    		return $this;
    		
    		//Или
    		return (object)$result;
    		
    	}
    	
    }


    Это так, примерно. Можно намного лучше написать, но идею надеюсь донёс.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Грамотная архитектура в Laravel?

    devian3000 @devian3000
    1-ый вариант. Разделите это всё добро по функционалу, и наследуйте.Так получится что запросы касающиеся чего-либо у вас будут выделены в отдельный класс ( Yii way ).
    2-ой вариант. Композиция. Отдельный класс и в нём то же самое что в первом варианте. Это идеально подойдёт для разделения. + вы будете общаться чисто с API класса обёртки, а что внутри будет легко сменить на что угодно и как угодно.
    3-ий вариант. Возьмите Doctrine вместо Eloquent и всё будет гораздо более академически практически сразу (ну при наличии знаний и прямых рук разумеется =) )
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как запустить mySql(mysqld)?

    devian3000 @devian3000
    Нужен my.cnf трабла скорее всего в нём.
    1. Находим my.cnf смотрим куда пишется лог.
    2. Заходим в лог смотрим что там творится.
    3. Правим те ошибки которые есть.

    Если ошибки не правятся. очищаем лог ребутаем службу - лог сюда.
    Если ошибок в логе нет, кидаем my.cnf сюда.
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • 4
  • Следующие →
Самые активные сегодня
  • rPman
    • 10 ответов
    • 0 вопросов
  • Dr. Bacon
    • 9 ответов
    • 0 вопросов
  • Евгений
    • 9 ответов
    • 0 вопросов
  • dollar
    dollar
    • 6 ответов
    • 0 вопросов
  • SADFGHJAETJER
    Финский Мачо
    • 6 ответов
    • 0 вопросов
  • OCTAGRAM
    OCTAGRAM
    • 6 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации