• Парсить страницу после выполнения скриптов?

    А не легче зарегистрироваться там, подписаться на новости и выбрать категории, которые тебя интересуют, и настроить оповещение на e-mail
    Ответ написан
    Комментировать
  • Что учить pdo или ооп в первую очередь?

    Pinsky
    @Pinsky
    Кофеиноникотиновая смесь в backend-код
    Меня такие вопросы всегда ставят в тупик.

    Вам жизненно необходимо и то, и то.
    Ответ написан
    2 комментария
  • Что лучше поставить в качестве веб-сервера на Debian 8?

    Denormalization
    @Denormalization
    nginx + php-fpm
    Ответ написан
    Комментировать
  • Можно ли в конструктор закладывать логику?

    kentuck1213
    @kentuck1213
    public static function setInfo()
    Ответ написан
    Комментировать
  • Можно ли запретить исполнять SQL команды в phpmyadmin?

    @thorii
    Может быть создать пользователя, и указать в правах запрет на TRUNCATE и DROP
    Ответ написан
    Комментировать
  • Как получить первую работу на upwork?

    opium
    @opium
    Просто люблю качественно работать
    нахрена вы пишите как вас зовут если это так видно из вашего профиля
    нахрена вы пишите про свой пояс тем самым вы отталкиваете 100% клиентов так как часовой пояс от них отличается от американского на 9 часов
    квик про таск может быть хорошо так как вы не написали что в него пишите

    а вот это нахрена ?

    and I am ready to explore deeper on interviews.

    I am very intrested in this project because I like to program in *.net, java*.

    In my profile, you can see more info about me.

    Kind regards.

    проверять первый ли ты или нет надо после того как забидил , а не до.
    бидить надо первым
    бидить надо в часовом поясе американцев

    буквально вчера мне написал дотнетчик
    наш разговор в феврале

    Игорь
    Привет! (имени, увы, не знаю)
    Ссылку нашел на тостере. Правильно ли я понял, что работая в Тае, ты можешь предложить какие-то удаленные вакансии/фриланс?
    03.02.16

    Puma
    А что умеешь и по чем?
    04.02.16

    Игорь
    В первую очередь C# .net, больше опыта на Desktop (WPF), расту в ASP.NET. Могу и С++. Есть вообще что-то удаленное по таким технологиям? По цене - для начала 15$
    04.02.16

    Puma
    Не мой профиль
    04.02.16
    А так на апворке куча работы

    Игорь
    Для .net куча?
    04.02.16

    Puma
    Да
    04.02.16
    Недавно только дотнет приложения разворачивал

    Игорь
    отлично) думал, что с .net можно об удаленке и не мечтать. Спасибо, поищу

    А вот десятого августа, прошло по сути 6 месяцев

    Игорь
    Доброго времени)
    С нашего последнего разговора многое произошло, я сделал 3 проекта на UpWork, побывал на Самуи, и решил туда переехать. Поможете парой советов?
    10.08.16

    Puma
    Помогу
    10.08.16

    Игорь
    На Самуи интернет нормальный (видео-скайп, remote desktop) реально пробить?
    10.08.16
    и второй вопрос, вот это за 20 тыс бат - дорого? Мне надо жилье найти, я пока не в теме вообще:
    Ответ написан
    2 комментария
  • Yii2 - как правильно задать url rule?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Если не дружите с регуляркой, не используйте или изучите. Можно вот так:'categories/<id>/<slug>' => 'categories/index'
    Ответ написан
    Комментировать
  • Yii2 - как правильно задать url rule?

    @matperez
    добавьте дефис в регулярку. что-то типа slug:[\w-]+ или slug:[\w\-]+
    Ответ написан
    1 комментарий
  • Как передать данные из НЕ инпута в форме?

    @IceJOKER
    Web/Android developer
    в голову приходит только следующее: создать скрытый инпут и при клике на звездочку присваивать текущее значение этому инпуту, но есть мнение что существует и более красивое решение. Как бы вы сделали?
    - это и есть самый хороший способ, тем более если нужно отправить вместе с формой
    Ответ написан
    Комментировать
  • Как лучше сделать собственные медиа-клавиши с уникальным функционалом на клавиатуре?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    AHK - сам пользуюсь: колесо "мыши" в качестве громкости при наведении курсора на таскбар, средняя кнопка - откл/вкл. звука вместе с микрофоном. Реально удобно!
    https://www.autohotkey.com/
    Ответ написан
    Комментировать
  • Как работает Yii::app()?

    copist
    @copist
    Empower people to give
    1. Инициализация Yii::app()

    Смотри, в файле www/index.php такие строки
    1. $config = APP_PATH . '/protected/config/main.php';
    2. $app = \Yii::createWebApplication($config); // @var CWebApplication $app
    3. $app->run();


    При отработке строки 2 выполняется код
    1. class YiiBase {
    2. {
    3.     // ... другой код
    4. 
    5.     public static function createWebApplication($config=null)
    6.     {
    7.         return self::createApplication('CWebApplication',$config);
    8.     }
    9.
    10.    public static function createApplication($class,$config=null)
    11.    {
    12.        return new $class($config);
    13.    }
    14. }


    В строке 12 с учётом динамического связывания выполняется return new CWebApplication($config);

    Если пройти по родительским классам, то можно найти, что
    class CWebApplication extends CApplication ...

    и далее
    1. abstract class CApplication extends CModule
    2. {
    3.     // ... другой код
    4. 
    5.     public function __construct($config=null)
    6.     {
    7.         Yii::setApplication($this);
    8.         // ... и другой код
    9.     }
    10. }


    В строке 7 вызывается Yii::setApplication($this);, а если посмотреть класс Yii и его родителя YiiBase, то можно увидеть как в итоге инициализируется переменная для конструкции Yii::app()
    class Yii extends YiiBase { }

    class YiiBase {
    {
        private static $_app;
        public static function setApplication($app) // тут определяется значение self::$_app для Yii::app()
        {
            if(self::$_app===null || $app===null)
                self::$_app=$app;
            else
                throw new CException(Yii::t('yii','Yii application can only be created once.'));
        }
        public static function app() // тут можно прочитать значение self::$_app через Yii::app()
        {
            return self::$_app;
        }
    }


    Теперь понятно, что при инициализации сущности типа CWebApplication эта сущность установилась в приватную переменную YiiBase::$_app, которая доступна через вызов Yii::app()

    Это была инициализация

    2. Использование Yii::app()->module или Yii::app()->component

    Ещё раз посмотри на класс CApplication
    abstract class CApplication extends CModule
    {
        public function __construct($config=null)
        {
            Yii::setApplication($this);
    
            // ... другой код
    
            $this->configure($config);
    
            // ... другой код
        }
    }


    В методе configure($config) происходит подготовка данных, которые понадобятся позже для таких вызовов как (к примеру) Yii::app()->db

    Давай посмотрим на класс Module, в котором и реализуется логика таких вызовов
    abstract class CModule extends CComponent
    {
        public function configure($config) // сохранить всё что передали по переменным
        {
            if(is_array($config))
            {
                foreach($config as $key=>$value)
                    $this->$key=$value;
            }
        }
    
        public function __get($name) // если кто-то пытается вызвать несуществующее свойство, например Yii::app()->db
        {
            if($this->hasComponent($name)) // проверить что есть настройки или готовая сущность компоненты
                return $this->getComponent($name); // вернуть сущность компоненты
            else
                return parent::__get($name);
        }
    
        public function hasComponent($id) // проверить что есть настройки или готовая сущность компоненты
        {
            return isset($this->_components[$id]) || isset($this->_componentConfig[$id]);
        }
    
        public function getComponent($id,$createIfNull=true) // вернуть сущность компоненты
        {
            if(isset($this->_components[$id])) // если есть готовая сущность компоненты, вернуть её
                return $this->_components[$id];
            elseif(isset($this->_componentConfig[$id]) && $createIfNull)
            {
                $config=$this->_componentConfig[$id];
                if(!isset($config['enabled']) || $config['enabled'])
                {
                    unset($config['enabled']);
                    $component=Yii::createComponent($config); // создать новую сущность компоненты
                    $component->init();
                    return $this->_components[$id]=$component; // сохранить и вернуть её
                }
            }
        }
    }


    Попробуем расшифровать вызов Yii::app()->db

    Как я уже показал, Yii::app() - это сущность типа CWebApplication, а у неё нет публичного свойства $db, поэтому PHP вызывает магический метод __get() из базового класса CModule. (Посмотри в документации "магические методы")

    Итак, свойства CWebApplication->db не существует и вызывается CModule->__get('db'), далее код считает, что, возможно производится вызов компоненты.

    Метод CModule->hasComponent('db') проверяет, что ранее были заданы какие-то настройки указанной через файл конфигурации protected/config/main.php или иным способом. Если так, то то вызывается CModule->getComponent('db', ...), который вызывает Yii::createComponent($config), где $config - это найденные настройки указанной компоненты, например, параметры соединения с базой данных для компоненты db

    Посмотрим, что делает Yii::createComponent($config)
    class YiiBase
    {
        public static function createComponent($config)
        {
            // посмотри сам, тут интересно
        }
    }


    Cложный метод. Суть его в инстанциировании новой сущности какого-то класса, 5 или 6 способов. Дело в том, что этот метод CModule::createComponent() может быть вызван откуда угодно и у него куча вариантов передачи параметров.

    Итак, CModule::createComponent() создал и вернул новую сущность. И на выходе из метода CModule::getComponent() полученная сущность записывается в массив CModule->_components под именем 'db'.

    Все последующие вызовы Yii::app()->db будут проверять наличие инстанциинованной сущности в массиве CModule->_components['db'] и использовать его, если он там найден

    Заключение:

    Вызов Yii::app()->db
    А. Динамически инициализирует компоненту, по мере необходимости
    Б. Настраивает её данными, которые в частновти можно определить через файл конфигурации protected/config/main.php
    В. Инициализируют компоненту только один раз за цикл работы PHP приложения

    Надеюсь я понятно изложил механизм ленивой инициализации компонент
    Ответ написан
    1 комментарий
  • Что за PHP фреймворк?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Выложи точку входа (index.php)

    В целом с первого взгляда похоже на codeigniter.
    Ответ написан
    4 комментария
  • Почему при использовании данных из localstorage пишет underfined?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Вот пример, как нужно делать правильно: https://jsfiddle.net/IonDen/1hkzvopy/
    var testObject = {
        a: 10,
        b: 20,
        c: 30
    }
    
    // неправильно!
    localStorage.setItem("test", testObject);
    var newObject = localStorage.getItem("test");
    console.log(newObject.a); // undefined
    
    // Нужно не забывать превращать в строку и обратно!
    localStorage.setItem("test2", JSON.stringify(testObject));
    var newObject2 = JSON.parse(localStorage.getItem("test2"));
    console.log(newObject2.a) // 10
    Ответ написан
    Комментировать
  • AdBlock зачем ты так?

    Denormalization
    @Denormalization
    Из-за класса adv очевидно. Нужно поменять его на другой, менее "рекламный"
    Ответ написан
    2 комментария
  • Толкование понятия экземпляра php?

    Экземпляр класса – объект.
    Экземпляр объекта - так не говорят)
    А если уж встретится "экземпляр объекта", то считайте это просто "объект".
    Ответ написан
    Комментировать
  • Несколько методов к одному объекту PHP?

    DevMan
    @DevMan
    метод должен возвращать указатель на инстанс: в конце метода должно быть return $this;

    https://en.wikipedia.org/wiki/Method_chaining#PHP
    Ответ написан
    Комментировать
  • Где брать популярные темы (тренды) за сутки?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Ответ написан
    Комментировать