Задать вопрос
  • Зачем в мультиязычном сайте в адресной строке указывают язык, если его можно брать из сессии?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    semki096, не только, если я хочу поделиться с другом ссылкой, его закинет на сайт с непонятной локализацией по умолчанию, вместо русской ссылки.
  • Преобразование объекта в строку key=value php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    FanatPHP, люди которые могут грамотно сформировать вопрос чаще всего решают такие задачи сами, ибо хорошо поставленный вопрос дает и верное направление решения и понимания куда копать в конкретном случае. Так и живем...
  • Нужно ли разделять модель с выводом данных и поиском?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Max Ba, поправка - при таком подходе лучше сделать
    public function save(){
        return $this->db->save($this);
    }

    и в самом объекте иметь свойство public $table = "customer"; , тогда дб будет сразу знать с какой таблицей работать из свойства объекта.
  • Нужно ли разделять модель с выводом данных и поиском?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Max Ba, что то типо такого, да, только совет по архитектуре:
    Нет смысла именно в объекте кастомера писать методы CRUD. Если делать модно и красиво - передавайте набор данных для сохранения в объект который будет заниматься чисто работой с данными(обычно это надстройка над пдо), типа
    public function save(){
        return $this->db->save($this->getDataSet());
    }

    1) $this->getDataSet() возвращает массив из данных объекта в виде ['имя_поля_в _бд'=>значение] и из него просто построить подготовленный запрос.
    2) public function save() лучше вынести в базовый объект и от него наследовать кастомера и все остальное что с базой работает(class Customer extends BaseObject{...). Так как данные для всех примерно одинаково читаются/сохраняются. Как выше написал dmitriy, креэйт и упдэйт по сути отличаются мало, в модели их не нужно разделять, а в объекте дб уже смотрите - если есть поле id - то упдэйт, если нет - инсерт.
    3) Я обычно свойства класса полученные из бд храню в отдельном свойстве, дабы не путать с настроечными и другими свойствами (типа $this->fields['id'],$this->fields['name']...) тогда и getDataSet() в самом простом виде просто вернет массив из этого свойства.
  • За какой взяться проект,тоесть создать себе задачу для практики дабы изучить PHP язык?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    Vasilstalin, это конечно сарказм, но отчасти - создав большой проект вы:
    1) Поймете какие задачи для разработки характерны в целом
    2) Научитесь создавать сложные структуры данных
    3) Скорее всего повысите качество кода
    4) Узнаете много технологий и сможете выбирать между ними в зависимости от задачи
    5) Естественно получите опыт и знания

    Из минусов - ЭТО ДОЛГО!, с другой стороны и оценку по времени и трудозатратам прокачаете.
  • Нужно ли разделять модель с выводом данных и поиском?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Max Ba, существует несколько подходов:
    Как выше написал dmitriy - (упрощенно)создать на каждую сущность несколько объектов - репозиторий и бизнеслогику(иногда еще вспомогательные какие-то), в репозитории практически чистый круд, ну и логика отдельно. Это дата маппер + репозиторий.
    И есть актив рекорд - круд и логика в одном объекте.
    И в обоих случаях есть масса разных реализаций и ответвлений. Но всегда объект сущности это именно экземпляр сущности(в вашем случае отдельный кастомер). Хотите много сущностей - создайте отдельный объект коллекцию - передайте в нее объект который нужно получить в нескольких экземплярах. Из него коллекция вытягивает имя таблицы (и список полей если нужно), далее строит запрос и выбирает список из бд, построчно проходит по полученной выборке и создает объекты на основе строчек. Туда же можно впихнуть получение счетчиков для пагинации и манипуляции с массивом объектов.

    класс Customer работатет со своей таблицей в бд. Делает в ней все сам и возвращает данные в виде массива. Разве не такая должна быть идея?
    нет, идея взять таблицу, получить из нее данные, данные хранить в свойствах объекта, ничего возвращать не нужно, данные и так будут доступны из свойств объекта.
  • Нужно ли разделять модель с выводом данных и поиском?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Max Ba, по уму пустой конструктор должен возвращать пустой объект, плохо когда объект (подразумевающий единицу сущности) возвращает коллекцию. Если нужно создать объект по каким то параметрам кроме ид то сначала что - создаете все объекты?
  • Как сделать мультяшный эффект изображения в пару кликов?

    ThunderCat
    @ThunderCat
    dollar, в теги по уму надо было добавить афтереффект и обработка видео, тогда ответы были бы более релевантны и от более сведущих людей. С темой знаком поверхностно, но уж точно не фотошопом это делается.
  • Как сделать поиск на сайте по критериям checkbox?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Во первых - уберите лишние теги
    Во вторых - укажите язык бэкэнд приложения
    В третьих -
    Есть не большой сайт по поиску ссузов на html
    на хтмл вы навряд ли реализуете какой-то серьезный функционал, хотя на яваскрипте что-то подобное можно реализовать и без серьезного бэкэнда, но в вашем вопросе ничего конкретного нет, вопрос слишком общий, из области "как сделать синхрофазатрон", конкретизируйте вопрос.
  • MYSQL: скорость запросов на локальной машине и сервере. В чем отличия?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    Николай,
    подскажите какую настройку нужно проверить?
    я бы все же первым делом эксплейн погонял, смысл крутить настройки если дело в построителе запросов допустим.
    Если есть именно необходимость тюнить настройки мускуля - https://launchpad.net/mysql-tuning-primer попробуйте такой инструмент.
  • Почему не отрабатывает ajax?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Т.е. id он определяет верно, а вот value с кнопки не видит :(
    И не должен, кнопка не является инпутом, соответственно не будет передаваться в списке данных формы и не имеет стандартного поля валуе, по этому и через скрипт не будет прочитан верно. Для этого и надо консолить переменные перед отправкой аяксом. Данные в кнопке храните в дата атрибуте, и вытаскивайте соответствующе.
  • Как сделать ajax на кнопке для записи в бд и вывести строку другим цветом?

    ThunderCat
    @ThunderCat
    Максим,
    И да, header в php я убрал, чтобы не срабатывал редирект.
    Редирект там и так срабатывать не будет, просто вызывая еще один варнинг, который либо будет засорять лог, либо мешать обработке ответа сервера в аякс респонсе.
  • Как сделать ajax на кнопке для записи в бд и вывести строку другим цветом?

    ThunderCat
    @ThunderCat
    Максим, все же смотрю что-то вы смогли вынести из гуглла, это хорошо и большой плюс в карму.
    Далее - все же до конца в вопросе вы не разобрались, тут даю хинты:
    $('button[name="couriers"]').on('click', function() { // лучше вешать на формы и слушать событие субмита,
    //тогда можно остановить действие по умолчанию и сделать любую дополнительную логику
    // $('form').on('submit', function(e) { // ловим событие формы в (е)
    // e.preventDefault(); // останавливаем отправку формы 
    let $row = $(this).closest('tr'); // это уже совсем не нужно 
    let data = $row.find('input, select').serialize(); //тут меняем на 
    // let data = $(this).serialize(); // сразу получаем все значения формы в объект data
    $.ajax({
    type: "POST",
    url: "courier.php",
    data: data
    }).done(function() { // тут лучше заменить на .success(), это будет работать более логично
    //}).success(function(responce){ //обращаю внимание на responce - это переменная 
    // в которую попадет ответ сервера
    //if(responce == 'ok') alert("Данные сохранены"); //если в courier.php после всех операций 
    //все хорошо - делаем echo 'ok'; exit; и это ok попадает в responce
    //else alert(responce); // если на сервере что то пошло не так то делаем echo 'каркул!'; exit;
    //})
    alert("Данные сохранены"); //а тут у вас независимо от результата работы сервера тупо будет алерт.
    // как вы понимаете он тут уже не нужен
    });
    return false;
    });

    ну и header('Location:delivery.php'); в случае аякса абсолютно не имеет смысла, вместо него надо как раз печатать ответ echo 'ok'; exit;
  • Что делаю не так в настройке вэб сервера?

    ThunderCat
    @ThunderCat
    Вот именно я гуглю и никакой метод не работает.

    https://www.google.com/search?q=mkdir()%3A+Permiss... - не могу поверить что методы перечисленные по первым 3 ссылкам не работают, или напишите что вы делали и что не получилось. И правила ресурса почитайте, там как раз про
    2.2 Убедиться в том, что в сети Интернет, и на страницах Сервиса в частности, отсутствуют ответы на данный вопрос.
    , а так же
    5. Категорически запрещается размещать на страницах Сервиса:
    ...
    5.12. Задачи и задания. В отличие от вопроса, задача и задание представляют собой частную проблемную ситуацию с явно заданной целью, которую необходимо достичь. Пользу от достижения этой цели получает, как правило, лишь её автор. И даже автору решение задачи или задания будет полезно лишь кратковременно (до тех пор, пока он не использует полученное решение).

    Как видите данной перепиской мы с вами УЖЕ нарушаем условия сервиса, не будем же дальше усугублять )
  • Что делаю не так в настройке вэб сервера?

    ThunderCat
    @ThunderCat
    adrash kh, так, стоп, кто тут поднимает проект? Или вы доблестно боретесь с проблемами самостоятельно, в том числе решая вопросы с ошибками и тд, или идите на фриланс, платите денег и не морочте людям всякие места. За вас никто не будет работать. Это у вас уже чистой воды задание - сделайте за меня. А тут вообще то сервис помощи в обучении и развитии.
    Если охота самому делать - гуглите, ваши ошибки легко решаются чтением доков и гуглом.
  • Что делаю не так в настройке вэб сервера?

    ThunderCat
    @ThunderCat
    adrash kh, нет именно так как я написал. Вы собираетесь работать с проектом на yii2 со столь впечатляющими знаниями в области веб разработки?.. смело...
  • Что делаю не так в настройке вэб сервера?

    ThunderCat
    @ThunderCat
    adrash kh, скорее всего вы перенесли папки проекта в документ_рут, а проект должен лежать на уровень выше. Если это нормальный проект, а не самописный велик на костылях, то у него должна быть папка которая должна быть документ рутом и папки лежащие выше документ рута(куда из веба лазить не надо). В рутовой папке должен лежать index файл(пхп или хтмл или что настроено открываться по умолчанию) и папки ресурсов(жс, цсс, картинки...). Соответственно проще всего в апаче в настройках хоста указать эту папку документрутом и все будет работать.
  • Как регулярными выражениями найти любой символ или пустую строку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    pandaa, ээ, батенька, как у вас все запущено...
  • Сделать raycasting на js?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    sljfhwo, ну, если вы из 104 тысяч ссылок не нашли ничего подходящего для вашего "начинающего и только учусь" уровня - может стоит подучиться или выбрать другую сферу интересов/работы? А то у вас как то получается "надо писать код и понимать что пишешь... ой, не, чет сложнаааа, дайте что-то чтобы оно само как то...", а так не бывает.