• Как происходит загрузка классов в php фреймворках?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    И вот у меня возникает такой вопрос. Получается, при каждом запросе пользователя скрипт обращается к диску в моем случае за 3000 файлами каких-либо классов?
    Не знаю как на серверных версиях Windows, но на "домашних" судя по всему, именно так и есть (с учётом разницы производительности, обычно не в пользу Windows). Linux же умеет кэшировать в памяти любые файлы, к которым вы обращаетесь, будь это .php или .jpg - не имеет особого значения.

    P.S. А с учётом того, что файлов 3тыс. а занимают они 10-30Мб (эти 3тыс. файлов), думаю гораздо продуктивнее хранить их в оперативной памяти, чем 3тыс. раз дёргать жесткий диски, особенно если это НЕ SSD-диск. Что собственно ОС обычно и делает :)
    Ответ написан
    1 комментарий
  • Как модульная верстка поддерживается после передачи на backend?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    после того как верстка готова, её нужно порезать на шаблоны серверного шаблонизатора

    Нет, она уже должна быть адекватно порезана, желательно с учётом серверного шаблонизатора и его структуры. Но (сразу уточню важный момент - я не эксперт по jade/pug и могу ошибаться) jade/pug не имеет многих функций, которые умеют серверные шаблонизаторы, из-за этого (лично мне) приходилось делать работу "наизнанку". В итоге, получилось работы больше, чем без jade/pug вообще.

    js и scss исходники раскидать по папкам в какой-нибудь resource директории и настроить сборку всего этого добра тем же gulp и webpack, что бы в дальнейшем проект поддерживался уже без отрыва от серверной части.
    настроить сборку по тем же путям, по которым они располагаются на сервере. Мне кажется, это довольно очевидный момент.

    Вот с таким пониманием, как я изложил выше, не могу понять пользу от этого модульного подхода после того как этот "полуфабрикат" в виде верстки сдан.
    Из личного опыта, пользу получают в основном те, у кого компьютер PHP (или PHP-шаблонизатор) не потянул, или автор не осилил установку PHP или не осилили основы PHP/-шаблонизатора этот человек не осилил. Обычно, гораздо проще писать сразу на PHP-шаблонизаторе, в идеале - в купе (совместно) с проектом и сразу же проверять/видеть результат. В нормальной фирме, программисты ни натягиванием вёрстки, ни её разработкой (созданием) не занимаются, этим занимаются исключительно верстальщики. А теперь подумайте, Вы действительно хотите сначала писать шаблоны в jade/pug, а потом перегонять их в Twig например? Такой подход, как Вы описали, обычно применим для команд уровня "1.5 человека", в которых обычно есть "заказчик" и "исполнитель", при этом, в 95% случаев, заказчика мало интересуют исходники, особенно исходники jade/pug.

    Могу Вам порекомендовать ознакомиться с проектом nodeJS/Twig, в теории это реализация PHP-шаблонизатора Twig на JS'е. Но, сам не пробовал особо, описать впечатления не могу. Возможно, он способен генерировать/интерпретировать правильный Twig-код, который потом можно будет использовать в PHP.

    Есть еще мысли, например, хранить эту верстку отдельно, собирать из исходников готовые js и css файлы в директории с серверным проектом и в случае необходимых правок вносить их сначала в самой верстке, а потом дублировать изменения в серверном шаблонизаторе.
    Есть такой "паттерн", называется "сборка проекта", появился он (как практика и ПО для реализации подобных практик) задолго до того, как мир узнал слова Gulp, Grunt, etc. Среди прочего, это ПО умеет собирать SCSS, минимизировать JS-код, склеивать/расклеивать/размазывать/итд его (код) любым возможным образом. Это же касается и оптимизации картинок и всего остального.

    Почти всё, что Вы видите в виде модулей для nodeJS и/или Gulp/Grunt, включая их самих - в большинстве случаев, есть либо переписанная на JS существующая ранее программа/утилита (для возможности работать на nodeJS), либо, обёртка поверх них. На мой взгляд, Gulp не лучший конвейерный сборщик проектов, для проектов с длительной поддержкой, для языков отличных от JS. Он скорее лучший сборщик для соло-разработки, когда верстальщик и заказчик - это два человека, и длительная поддержка проекта изначально не планируется. У любого крупного и адекватного проекта, обычно есть сборщики альтернативные Gulp/Grunt, а необходимые корректировки пишутся не дважды, а один раз, на одной конкретной ветке проекта. Не редко, специально для этого поднимаются тестовые стенды, не редко их может быть довольно много, и там Вы можете вносить любые изменения в т.ч. и вёрстку и тут же мониторить результат её реального отображения, а потом делать соотв. пуш, соотв. ветки на соотв. сервер/репозиторий и отправлять проекта на тесты/сборку/итд.
    Ответ написан
    4 комментария
  • Как сгенерировать резиновое изображение?

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

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    А что Вам нужно? Попап? Если да, то вот, два брата близнеца, по внешним признакам...
    Ответ написан
    3 комментария
  • Mysql_query() какой синтаксис для foreign key?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    А как связан синтаксис SQL с "драйвером" (прокладкой PHP<->MySQL) БД? Вам говорят о том, что вместо mysql_ нужно использовать либо mysqli_, либо PDO, на синтаксис это не влияет никак вообще.

    Примеров полно, например тут.
    Ответ написан
    4 комментария
  • Как сохранить конфиг сайта в PHP через браузер?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    По существу, это противоречит вообще всему РНР.
    Ничему это особо не противоречит, есть масса механизмов, которые записывают PHP-файлы, которые написаны на PHP. Большая часть CMS, например, пишет собственные конфиги "на лету". PHP-файл не отличается примерно ничем, от того же текстового файла. Интерпретатор PHP может с тем же успехом выполнять файлы с расширением .txt, если в них валидный код.

    Заранее большое спасибо. Было бы не плохо, если бы написали как сохранять ТХТ и как взять от туда данные и впихнуть в РНР.

    Клац.

    P.S. А ещё есть форматы XML, JSON и другие. В которые Вы можете записывать и считывать данные. В т.ч. есть функции json_encode и json_decode, с помощью которых можно кодировать/декодировать JSON-данные, сохраняя/считывая их из текстового файла. И ещё есть serialize, который позволяет сериализовать, например целиком объект/класс.
    Ответ написан
    Комментировать
  • Как анализировать рынок веб/мобильных отраслей?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    То есть какие тематики сайтов сейчас востребованы

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

    Тематика порнографического характера - будет востребована ещё больше, т.к. некоторые физиологические особенности человеков, заставляющие их интересоваться подобной тематикой - есть у гораздо большего кол-ва людей, чем машины. Конкуренция не большая, т.к. добрую часть страждущих отвадили заниматься этой темой, но варианты есть, в достаточном количестве. А если Вы ещё и сможете авторские статьи писать, с фото/видео и опыт есть (так же как с авто) - то успех Вам гарантирован.

    Какая ещё тематика будет востребована? - Практически любая. Вы не поверите, но люди среди прочего (помимо того, что ещё имеют машины), так же имеют: бытовую технику, заболевания (медицина), электронику (гаджеты и компьютеры), имеют потребность в еде и её приготовлении, посуде и множестве всего остального, например, в программном обеспечении для своего ПК.

    чтобы поднять свой сайт в топ, нужно не мало усилий

    Поднять сайт в ТОП не сложно. Сложно не сорваться и не начать делать какое-то дерьмо под соусом "пипл схавает".

    То есть какие тематики сайтов сейчас востребованы, притом чтобы конкурентоспособность было небольшая, то же и с мобильными приложениями.
    Забивая скажем в Google Play "онлайн радио" получаем куча результатов, которые превосходят мой продукт

    Как я уже писал выше - любые тематики, в которых Вы что-то понимаете. Если какая-то тематика востребована сейчас и в ней мало конкуренции - это не говорит о том, что в этой тематике не будет конкурентов завтра. Скорее, это говорит как раз таки об обратном. Нужно делать конкурентоспособный продукт, тогда проблем не будет. Это закон рынка и отчасти - жизни. Я думаю, мало кто бы хотел оказаться на операционном столе хирурга, который пошел работать хирургом в виду малой конкуренции... многие так же, не хотели бы видеть приложения/сайты именно в таком формате, и поисковые системы с этими "многими" полностью согласны.

    P.S. Как я уже говорил, даже если Вы найдете некоего специалиста, даже если он будет архи-спец., он даст Вам информацию сродни прогнозу погоды. Насколько бы точным не был прогноз на сегодня - далеко не факт, что такая же погода будет завтра.
    Ответ написан
  • Как удалить кеш старого сайта?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Вопрос. Как научить новый сайт перезаписывать куки и кеш самостоятельно?

    HTTP заголовки, например Set-cookie и/или Cache-control, Expires, и т.д.
    Ответ написан
    Комментировать
  • Как разобраться с js задачей?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Например, так.
    Ответ написан
    Комментировать
  • Как реализовать систему "наград" на сайте?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Но как и где сделать проверку на выполнение условий

    Очевидно, что награду за
    Например пользователь написал 10 статей
    нужно проверять там же, где пользователь сохраняет написанную статью. В Laravel среди прочего, так есть система событий.

    Но как и где сделать проверку на выполнение условий

    Там, где условие может измениться в какой-то момент времени, например - я написал выше.

    и где реализовать сам код приписания награды?

    В отдельно классе-хелпере, как вариант. А вообще это примерно на 99% зависит от архитектуры приложения.
    Ответ написан
    5 комментариев
  • Как сохранять большие тексты при частых, но незначительных изменениях?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    1. Для создания дельты изменений в чем бы то ни было (в тексте, или в бинарных данных и т.п.) есть утилиты/алгоритмы, уже готовые. Можете взять их и адаптировать под себя, например diff. Как это будет реализовано на уровне JS'а в браузере я пока не очень представляю, но гипотетически - это вполне возможно/реализуемо.

    Как решить эту проблему? Возможно ли частичное обновление поля в MySQL

    Частичное обновление файла возможно только в том случае, если кол-во измененных данных равно кол-ву данных оригинала, т.е. нельзя открыть файл и вставить что-то в его середину, можно перезаписать кусок данных ровно такой же по длине как был до этого. В противном случае, файл будет либо перезаписан с того места, где было изменение, либо перезаписан целиком. Это не зависит от базы, это простая арифметика.

    Судя по контексту эпитета выше - это проблема не базы, а медленного интернета конкретного пользователя. А так же, какие-то серьёзные ошибки архитектуры. Каким образом пользователи умудряются прислать половину запроса - я не очень представляю, такое даже в "лабораторных условиях" довольно не просто сэмитировать, не говоря уже о том, что бы подобное повторялось многократно. Но если уж у Вас запросы как-то кусками умудряются приходить - ставьте в конце запроса какой-то маркер, который не сможет воспроизвести пользователь, например, какой-то бинарный символ, который будет говорить о том, что это конец сообщения. Если его нет - выдавать пользователю сообщение, что всё очень и очень плохо...

    Как выявить частичные изменения, чтобы не гонять весь текст целиком, а только внесённые изменения? Поделитесь опытом.
    Ответ на этот вопрос содержится в 1-м абзаце, выше по тексту :)

    Кроме того, как только пользователей станет много, подозреваю, сервер ляжет.
    Довольно странно будет, если у Вас база ляжет от такой нагрузки... Это скорее больше похоже, опять таки, на серьёзные ошибки в архитектуре, а не проблемы БД/сервера как таковых.
    Ответ написан
    Комментировать
  • Как отображать iframe содержащий http на https-страницах?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    Как отображать iframe содержащий http на https-страницах?

    Отображать "как есть", браузер только ругаться будет, что "небезопасный контент". Что бы такого не происходило, нужно пропускать такие страницы через HTTPS-прокси, либо не использовать HTTPS у себя на сайте, тогда браузер ругаться не будет.

    иногда сожержит в себе ссылки на материалы с http-протоколом

    Сами ссылки, как таковые - не зависимо от своего протокола, роли не играют, даже если это будут ссылки ftp://. Проблемы будут если Вы будете в iframe загружать страницы не HTTPS, когда сайт работает по HTTPS-протоколу.
    Ответ написан
  • Как сделать функцию поднятия объявления на php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Без использования крона. Это связано как то с css?

    Вряд ли... Если речь идёт о каскадных таблицах стилей.

    Это можно сделать например, запустив PHP-скрипт из CLI (т.е. из командной строки, что бы он не прерывался по истечению 30сек., как это обычно происходит). Этот скрипт запускает бесконечный цикл, в котором будет проверять, сколько уже прошло времени и поднимать соотв. объявления/посты наверх.

    Или, при каждом запросе, перед отображением этих самых объявлений, сверять время и если настал час N - поднимать соотв. объявление наверх.

    Это будет:
    а) на PHP
    б) без CRON'а
    Ответ написан
  • Сайт не оптимизирован для мобильных устройств. В чем дело?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Яндекс и Гугл определяют сайт как Сайт не оптимизирован для мобильных устройств! В чем может быть дело?
    Конечно сложно сказать наверняка, но видимо дело в том, что сайт не оптимизирован для мобильных устройств? :)))

    Подробности.
    Ответ написан
    9 комментариев
  • В чем смысл обертки для сессий, и чем плохи стандартные сессии в php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Почему многие не рекомендуют пользоваться встроенными сессиями в php?
    В виду особенностей их работы и коллектора мусора. Можно станартные сессии завернуть в Redis. Тогда большая часть проблем решается. В прошлом году, обсуждали проблему, когда из-за переполнения диска файлами сессий - сервер упал.

    Какой смысл в обертке?
    Обёртка по природе своей более нативная для системы, в которой она применяется. Не факт, что эта обёртка не использует стандартные сессии, но чаще всего это именно так. Плюс, обёртка обычно может предоставлять какие-то дополнительные функции...

    Или например, хранение сессий в базе (или в Redis'е) - исключает вероятность переполнения диска этими файлами.
    Ответ написан
    5 комментариев
  • Сколько ОЗУ на VPS потребуется?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Хватит ли оставшейся оперативки если установлю apache + php + mysql?

    Для того, что бы оно запустилось - думаю хватит.

    Нагрузка на сервер предполагается мизерной — бот на php для telegram.

    Зачем Вам Apache или вообще веб-сервер? Запускайте скрипт из консоли. Можете попробовать встроенный в ПХП веб-сервер.

    При жесткой необходимости можно отказаться от mysql и хранить данные в файлах.

    При жесткой необходимости, и в её отсутствие тоже, можно отказаться от MySQL и хранить данные в SQlite3.

    P.S.
    панель показывает: 120.2 MB of 256 MB Used / 135.8 MB Free
    Единственное, что меня смущает - как и зачем Вы умудрились панель вкрутить на сервер с 256Мб оперативки :)) Но... это в принципе к делу не относится, просто мысли вслух.
    Ответ написан
    6 комментариев
  • Уровень владения Git'ом для работы в студии. Он какой?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Скажите, этого достаточно как рядовом разработчику в студии?

    В условиях фактической субъективной реальности, на просторах бывшего СССР - это примерно всё, что Вам придётся когда либо узнать о работе с Git'ом, примерно в 97% "студий". То есть, отвечая на Ваш вопрос - да, этого будет достаточно. Возможно Вас ещё паре-тройке особенностей конкретно их работы обучат. И будет довольно неплохо, если "там" будут работать с Git'ом хотя бы так, как Вы описали. А не гадить в одну ветку в 20 человек...

    То есть, в целом, если в "студии" слышали про Git и тем более ветки, - это уже хорошо. А если знают зачем они нужны - это прям вообще не плохо. А если ещё и пытаются применять их по назначению... - это считайте, уже почти топовая компания.
    Ответ написан
    4 комментария
  • Какие технологии использовать для реализации сервиса предоставляющего API?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    А что Вы ожидаете услышать? В АПИ много кто чувствует себя хорошо, и нода и ПХП и даже С++. Наговнокодить можно на чём угодно, заставить проект работать очень быстро - можно и на ПХП. К тому же, большая часть нагрузки, как мне видится - ляжет на БД, а её проектирование и настройка, особенно это относится к Postgres - это целая наука. Я пока не очень представляю, как NodeJS будет держать такое кол-во пользователей (скорее всего от того, что я не очень хорошо знаком с NodeJS), но случаев когда она с треском падала - в истории достаточно.

    Что думаете по этому поводу?
    Я думаю, что Вы предоставили слишком мало входных данных и конкретики. Так как, например, даже горячо любимый мной Postgres - в ряде случаев, далеко не лучший выбор. А посоветовать пихать "Базу N" везде, где только можно и нельзя, не понимая всей сути проекта, могут только те, кто с другой базой не работал, и считает, что единственная технология с которой он знаком - лучшая из всех возможных. Посему, в виду скудности входных параметров, ответ на Ваш вопрос будет, либо таким же размазанным как мой, либо чем-то из серии "Юзайте NodeJS+MySQL, мой блог с посещаемостью 30 чел./месяц, вот уже 4-ый год как стабильно работает в такой связке! И ещё на WindowsServer всё это установить не забудьте! Лучшее сочетание из возможных."
    Ответ написан
  • Возможно ли собрать пакет из исходников?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    1.
    /bin /sbin
    Насколько я помню, там лежат программы необходимые, для того, что бы система загрузилась и нормально функционировала.

    2. Пропущу этот пункт, т.к. ответ и "да" и "нет", довольно сложно сказать "глобально". Но в большей степени Вы правы.

    3. Там хранятся постоянно изменяющиеся файлы, например, базы данных. Сокращение от слово "variable". Но это всё так же формальности, не редко эти же данные могут храниться в абсолютно неожиданно месте. В т.ч. там могут храниться виртуальные машины например, степень "изменяемости" которых, определить довольно сложно. И т.д.

    ? Пользуются ли ей все программы: системные и пользовательские?

    Все - нет, некоторые - определённо пользуются.

    4) Как организовать программу и понять, что отнести в папку /bin | /lib | /share | /local/

    /bin - мы уже обсуждали выше, скорее всего, туда вносить ничего не нужно.
    /lib - там хранятся "разделяемые библиотеки", аля .DLL в виндовсе, причем, там хранятся библиотеки которые уже предоставляет система, по этому, в Вашем случае, туда скорее всего вносить ничего не нужно.
    /share - разделяемые документы/файлы/etc., например, обои по умолчанию, доступные всем пользователям.
    /local и /usr/local - там могут быть как просто программы, не входящие в состав дистрибутива, так и целая файловая система, в т.ч. свой /bin /var и так далее. Когда Вы собираете программу из исходного кода, обычно она заселяется именно туда.

    5) Возможно ли собрать пакет из исходников, если нету никаких файлов "makefile", а лежат голый директории с файлами? В архиве\гитхабе.

    Возможно конечно. Что бы этому процессу на Ваш взгляд могло помешать?

    P.S. Файловая система линуксе, хоть и стандартизирована, но стандарт действует на уровне "рекомендации", и не редко, можно встретить довольно ощутимые различия в логике примерно всего, от именования пакетов до того, как и куда эти пакеты устанавливаются, и какие каталоги используют. Более того, как я уже писал выше, не редко, программы собираемые из исходного кода, создают/используют свою файловую систему в /usr/local.

    Стандарт FHS - рекомендую Вам с ним ознакомиться, но опять таки, не забывайте, что мало какие дистрибутивы и тем более производители ПО/пакетов для этих дистрибутивов, придерживаются этих правил на 100%.
    Ответ написан
    Комментировать
  • Как добавлять класс при наведении и удалять, когда курсор ушел с элемента?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как отредактировать этот код, чтобы когда курсор ушел с элемента класс удалялся?

    Например, так.
    Ответ написан
    2 комментария