Профиль пользователя заблокирован сроком с 26 июня 2017 г. и навсегда по причине: систематические нарушения регламента работы сервиса: размещение нецензурной лексики; оскорбления в адрес пользователей, модераторов и специалистов службы поддержки
  • Вопрос про статические функции в php, как избавиться от Strict Standards: Non-static method?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Каша. В основном в голове. Не понимаете как работает наследование, не понимаете как работают классы. Ошибку вам четко указали, просто вы не знаете основ.
    Я знаю, как расшифровывается Non-static method и понимаю, что функция идёт не статичной, как её хочет видеть сам php.
    . PHP не хочет ее видеть статичной, просто указывает что вы ее статичной не сделали, а обращаетесь как к статик.
    хочу вызвать класс oldClass, которая наследуется от controllerClass и функцию view, дабы уже вызвать $this->_message (как пример), уже из обновлённого controllerClass

    1) Классы не вызываются, вызываются методы класса.
    2) То что он наследуется от какого-то класса не делает его автоматически видимым внутри родительского класса, это ВООБЩЕ ДРУГОЙ КЛАСС теперь, никак не связанный с родителем, просто имеющий некоторые одинаковые методы и свойства. Чтобы вызвать его метод, сначала нужно создать объект - экземпляр нужного класса.
    Ответ написан
    Комментировать
  • Как работают классы в ECMAScript 6?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    // ПОЧЕМУ super.model ЗДЕСЬ undefined

    Потому что Model.prototype не содержит свойства model

    Пример:
    es2015:
    class A {
      constructor() {
         // ...
      }
    
      method() {
         // ...
      }
    
      static sMethod() {
        // ...
      }
    }
    
    class B extends A {
      constructor(x, y) {
        super(x);
        super.method(y);
      }
    }

    То же самое, на es5:
    function A() {
      if(!(this instanceof A)) {
         throw new Error('Class constructor A cannot be invoked without \'new\'');
      }
      // ...
    }
    A.prototype.constructor = A;
    A.prototype.method = function method() {
      // ...
    };
    A.sMethod = function sMethod() {
      // ...
    };
    
    function B(x, y) {
      if(!(this instanceof B)) {
         throw new Error('Class constructor B cannot be invoked without \'new\'');
      }
      A.call(this, x);
      A.prototype.method.call(this, y);
    }
    B.prototype = Object.create(A.prototype);
    B.prototype.constructor = B;
    B.sMethod = A.sMethod; //static методы тоже наследуются
    Ответ написан
    Комментировать
  • Где грань между созданием экземпляра объекта (new Class()) и использованием оператора разрешения области видимости (::)?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Статические методы стоит использовать в качестве именованных конструкторов. Для всего остального лучше создавать экземпляры объектов, потому что статические методы к ООП, по большому счёту, никакого отношения не имеют и поэтому размывают парадигму для тех, кто в ней не очень хорошо ориентируется.
    Если в статическом методе нет работы с состоянием и таких методов много, скорее всего, автор кода не очень проникся идеями ООП и код написан в процедурном стиле. А если там есть модификация какого-то состояния, то это работа с глобальными переменными (почему глобальные переменные - это плохо, надеюсь, пояснять не нужно).

    Обязательно ли создавать экземпляр? Или можно обойтись статическими методами

    У вас в коде есть вот это: echo Form::getError();. Откуда статический метод будет получать информацию об ошибке формы? Как он будет отличать ошибки одной формы от другой?

    Единственное что знаю, экземпляр надо создавать тогда, когда он оперирует уникальными данными
    Экземпляр нужен тогда, когда у него есть какое-то собственное состояние (ошибки валидации, например). У двух объектов состояние может совпадать (то есть быть неуникальным), но это не значит, что в следующий момент один из них не изменится.
    Ответ написан
    5 комментариев
  • В чем недостатки сайта на чистом php?

    Pinsky
    @Pinsky
    Кофеиноникотиновая смесь в backend-код
    Есть разница между чистым PHP и спагетти кодом.

    Если Вы сделаете качественную кодовую базу, которая будет написана с грамотным использованием шаблонов проектирования, будет читаема и отвечать максимальному числу PSR - пишите сами, однако, в таком случае Вы напишите процентов 70 от того же фреймворка.

    Возможно, Вам стоит задуматься о использовании компонентов Symphony, если Вам так критично уменьшить число прослоек.

    Если же, тут дело в том, что просто не знаете фреймворк - рекомендую освоить. Очень многое может разложить по полочкам в голове и ускорить в последующем разработку приложений.
    Ответ написан
    3 комментария
  • Какую вы используете структуру для хранения изображений?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    вот тут

    как уже не раз написали - оригниналы - в md5, влооженность директорий- две

    всего дает 65536 директорий с 65536 макс файлов в каждой

    достаточно для карьеры
    Ответ написан
    2 комментария
  • Как HR и работодатели относятся к соискателям, у которых есть свой сайт?

    Не будете ли вы заниматься своим сайтом в рабочее время?

    Не будете ли вы заниматься семьёй в рабочее время?
    Не будете ли вы смотреть футбол в рабочее время?
    Не будете ли вы гонять в танки в рабочее время?

    Я привык сам контролировать, куда и где уходит моё время, и соблюдать принятые мной договорённости. Если у вас также - думаю вы имеете все основания сказать об этом сотруднику отдела кадров, чтобы подобные вопросы больше не повторялись. Есть миллион гораздо более эффективных способов следить за производительностью коллег, чем задавать такие вопросы.
    Ответ написан
    2 комментария
  • Где делать проверку введённого текста?

    DevMan
    @DevMan
    валидация должна выполняться на:
    - клиенте дабы повысить отзывчивость и уменшить раздражение юзера
    - сервере дабы убедиться что пришли верные данные

    первый пункт можно по желанию опустить, второй должен быть всегда.
    Ответ написан
    Комментировать
  • Может ли интернет-магазин не использовать ККМ?

    sergeyvidioreg
    @sergeyvidioreg
    "Вопрос нужен ли в таком случаи ККМ (контрольно кассовая машина)? И вообще в каких случаях интернет-магазин может не использовать ККМ?"
    Если у вас нет стационарных пунктов (физических офисов),где клиент может прийти и оформить заявку-ккм вам не нужна
    Интернет магазин может не использовать ККМ во всех случаях,если он не работает с наличными.
    У вашего ИП есть банк и переводы могут идти туда,как было написано выше,но для более простой обработки оплаты-проще всего вам подключить какой-нибудь платежный агрегатор-как вариант яндекс money
    Ответ написан
    Комментировать
  • Чем оправдано использование QueryBuilder и ActiveRecord в одном проекте?

    ActiveRecord в большинстве случаев подходит только для простых запросов. В случае чего-то более-менее заковыристого приходится лезть в модель и городить огород из правил разной степени кривости (если фреймворк поддерживает), или еще хуже - писать все вручную. Два варианта плохи по определению. Поэтому ActiveRecord для простых операций, а QueryBuilder (или какой-нибудь нативный и удобный объект для работы с БД) с блэкджеком и шл PDO и плейсхолдерами - для всего остального.

    Отказываться не стоит, просто нужно использовать молоток для забивания гвоздей, а лопату - для копания. ActiveRecord адски удобен, при простых выборках или рядовых insert \ update он смотрится просто великолепно и делает код более простым и наглядным. В проектах ИМ 80% операций с базой идет через AR, и это очень облегчает жизнь.
    Ответ написан
    4 комментария
  • И все-таки PHP 7 быстрее Python 3?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Бенчмарки - это бесполезные писькомерки.

    Инструменты надо сравнивать не по тому, как они себя ведут в вакууме, а по удобству использования в реальной жизни и тому, насколько они способны решить поставленную задачу.

    Что в вашей жизни изменится после того, как в ответах к вопросу один человек напишет, что php быстрее, другой, что быстрее python и ещё десять разведут срач не по теме?

    Но вот есть ли смысл в удобстве, если это удобство не дает нужных результатов?
    Нам надо вас уговорить вернуться на php? Вы благословения испрашиваете? Вы уже столкнулись с реальными проблемами производительности?
    Ответ написан
    6 комментариев
  • Перехват обращение к свойству объекта?

    by25
    @by25
    Веб-разработчик
    Обращаться к свойству через геттер/сеттер.

    class Foo {
        private $param;
    
        public function getParam() {
            //... тут своя логика
            return $this->param;
        }
    }
    Ответ написан
    Комментировать
  • Может ли интернет-магазин не использовать ККМ?

    ipswitch
    @ipswitch
    IT-инженер
    У Вас по сути электронный товар?
    Договор с агрегатором (платёжным шлюзом) на интернет-эквайринг, деньги будут капать Вам на р/с.
    ККМ не нужна.
    Ответ написан
    Комментировать
  • Почему php не загружает расширения под Win?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    The default location PHP searches for extensions is c: \ php5 . To change this setting to reflect your setup of PHP edit your file php.ini.
    You need to change the parameter extension_dir to point to the directory where your extensions or where you placed your files php _ *. Dll . For example: extension_dir = c:\php\extensions

    php.net/manual/fr/install.windows.extensions.php
    Ответ написан
    Комментировать
  • Есть ли среди вас те, у кого есть постоянный стабильный доход не от разработки, а от своего продукта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Вложитесь в недвижимость и сдавайте ее в аренду.
    Ответ написан
    31 комментарий
  • Какие существуют способы защиты кода от копипаста?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    От кого вы пытаетесь защититься?))
    - от рядового пользователя. Он даже не подозревает о существовании php
    - от прогера, которому оно не особо надо. Он по тыкает палочкой 15мин и забъет.
    - от прогера, которому капец как надо. Он ваш код взломает.

    Защиту можно обеспечить как saas, но все зависит от того, что именно вы пытаетесь предоставить как сервис.

    некоторые cms без лицензии могут работать только на денвере но не на живом хостинге.

    хрень какая-то)) т.е. под линухой такую cms запустить нельзя что-ли?))
    Ответ написан
    2 комментария
  • Где можно найти примеры очень сложных Sql SELECT запросов?

    @mletov
    Sql запросы это ж не марки и не монеты, чтобы их коллекционировать. В отрыве от задачи, которую они решают, никакой ценности сами по себе не представляют.
    Ответ написан
    6 комментариев
  • Надо ли изучать html для изучения javascript?

    @r_zaycev
    При любом раскладе ответ скорее "Да".
    Поясню: если цель обучения это написание js для браузера, то без базовых знаний HTML (не обязательно прокаченный скилл верстки) нормально писать будет сложно (работа с DOM, например). Если цель: это написание js под node.js, то опять таки скорее да, потому что нода -- это в первую очередь веб (спорно, но скорее да, чем нет).
    Ответ написан
    Комментировать
  • Какие есть дельные ресурсы по кросс-браузерной верстке?

    @AndreyMyagkov
    Если у Вас верстка на простых вещах пляшет, то причина проста: Вы не понимаете сути верстки, а именно правильной разбивки элемента страницы на блоки и их позиционирование. Сейчас браузеры на 99,9% идентичны в плане рендеринга.

    Вот советы:
    • Верстать надо наименьшим числом блоков, наиболее простым способом.
    • Почитайте про позиционирование элементов (float, padding, margin, z-index, border, box-model, box-sizing, clearfix)
    Ответ написан
    8 комментариев
  • Как победитьэту проблему с замыканими?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Комментировать
  • Как победитьэту проблему с замыканими?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    var arr = [1, 2, 3];
    
    for (var i in arr) {
      (function(i, el){
        var p = document.createElement('p');
        p.appendChild(document.createTextNode('тут при клике должен быть текст с цифрой ' + (parseInt(i) + 1)));
    
        // вот тут затык - почему всегда последний элемент??
        p.onclick = function(){
          alert(el)
        };
    
        document.body.appendChild(p);
      })(i, arr[i]);
    }


    https://jsfiddle.net/DelphinPRO/Lvzzpvv2/
    Ответ написан
    1 комментарий