Сообщество - Программирование на PHP

Программирование на PHP

64 поста 1 971 подписчик

Популярные теги в сообществе:

15

Скрипт для веб камер с RTSP

Мой первый пост, готов принять критику.

Скрипт позволяет сохранять видео с камер поддерживающих RTSP.

- Имеется удобное добавление, редактирование камер в систему.

- Имеется возможность добавления фильтров для обработки видео.

- Анализ видео на наличие звуков, удаление видео с "тишиной"

- Установка времени работы камер(запись только тогда когда необходимо)

- Анализ видео на наличие разговоров и получение текстовой версии.

Список всех камер, для камеры указывается ссылка RTSP и параметры для ffmpeg (чтобы сохранять поток в видео файл) Каждую камеру можно запустить и остановить отдельно, также указать время работы.

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

Основная страница для просмотра видео, есть возможность выбрать камеру и просмотреть видео записи по временным меткам. Для каждого видео имеется возможность просмотреть и применить фильтры, если имеется текст, он отображается с временными метками, по нажатию на которые видеоплеер переходит на указанное время.

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

Для минусов укажу комментарий, спасибо если дадите публиковаться.

Дубликатов не найдено, выдает скрины каких то приложений.

Показать полностью 3

Как я php- програмистом устраивался

Ну, дело так сказать было в начале десятых годов, тогда я почти год изучал php. Скажу сразу, это главнейшая ошибка при изучении програмирования. Я считай пальцем тыкнул из кучи языков в php, не понимая сути. Так вот. Перейдем к делу.

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

Вот я накропалил MySQL, с php, и застрял. А как они поймут что это почта, подумал я. Как они поймут что она рабочая. И тут я понял что упустил что то в своем обучении.

Во первых нужно было тело, простенькое html, JavaScript, для поддержания штанов и php для связи между штанами и телом. (Это грубая моделька самой простой на тот момент почты, прошу не судить)

Так я упустил свой шанс стать программистом. Потому что слишком рьяно принялся за изучение языка. Не зная основы

80

Как в PhpStorm убрать лого при каждой загрузке

Сижу программирую. Вылазит сообщение - PhpStorm обновился. Обновляю

При каждом входе вижу вот такое цветастое лого - бесит.

Написал в поддержку, получил ответ:

Текстом: Откройте Help -> Edit Custom VM Options... -> и добавьте -Dnosplash=true строку. После этого логотип больше не будет показываться.

Показать полностью 1

Uncaught Error: Class 'Posts\AirPost' not found

Начал углубиться в ООП и уже первые проблемы))
2 дня не могу разобраться.

Есть класс. Находиться он по пути  App/FabricMethod>Posts.php

Сделал для нее автозагрузку через composer:

подключил и пытаюсь обращаться к нему

Когда сам класс импортирую, все работает. Через namespaces не работает((

Показать полностью 4

Windows решает прекратить поддержку PHP

Дейл Хёрт (менеджер Windows по php)

Заявил что php 8.0 не будет поддерживаться, а более младшие версии будут поддерживаться только в части безопасности

Вопрос: что делать то теперь ?

30

Как подружить Ежа с Ужом или отправить с сайта заявку в 1С

Наступил час Х, директор вызвал меня и объявил, что хочет, что бы заказы с сайта падали в 1С. Деваться некуда пришлось браться за столь весёлую и увлекательную задачу. Так как 1С я видел только из далека на компьютере главного бухгалтера, первая моя мысль была поймать нашего 1С-ника работающего на удалёнке и объяснить ему задачу. Поймал, объяснил, что хочу мол в 1С POST запросы отправлять для формирования заявки. 1Сник очень удивился, сказал: "Моя твоя не понимать", но обещал подумать. Через пару часов позвонил и сказал, что в 1С есть уже готовая система для приёма заявок с сайта. Но как она работает он не знает, так что разбирайся сам. Приехали.


Что делать, пришлось сесть и читать про CommerceML 2. При первом знакомстве с документацией на сайте 1С, чтение сего мануала вызывало боль, отвращение и мысли о суициде. Такой охуенной документации я давно не читал. После первого прочтения решил позвонить в одну известную в нашем городе 1С контору и спросить, сколько будет стоить сопряжение нашего сайта с 1С, менеджеры долго совещались и через сутки вынесли вердикт 30 000 рублей.


Ох уж эти 1С-ники, им только денег дай. Можно было конечно у директора попросить денег, он бы дал, но тут видимо во мне взыграли амбиции и решил я таки разобраться сам.


Первое, что было необходимо сделать это поднять web сервер на сервере 1С и настроить 1С-ку что бы она общалась через этот web сервер, надо отдать должное описание сего процесса есть на многих сайтах и форумах и занимает не более получаса.


А что дальше? Проверяем как работает веб сервер и отправляем ему запрос в браузере:


http://xxx.xxx.xxx.xxx/'Имя сервиса'/ws/SiteExchange?wsdl


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


Попытки отправить XML запрос вызывали ошибки на стороне 1С, она ругалась не понятными словами. А дальше пару дней я просто читал всё что связанно с оформлением заявок с сайта в 1С.


Ничего дельного я не нашёл. Но пару раз меня выкидывало на форум 1С, но там нужна была регистрация, а регистрироваться в этой богадельне мне не хотелось, но на конец второго дня я понял, что видимо придётся. Регистрация давалась на 7 дней, если ты не являешься клиентом ))).


Регистрация пройдена и о чудо в одной из веток я обнаружил обсуждение данного вопроса и там то я и подсмотрел как правильно формировать XML запрос.


Выкладываю его сюда может ещё кому пригодится:


function Connect1C(){

if (!function_exists('is_soap_fault')){

print 'Не настроен web сервер. Не найден модуль php-soap.';

return false;

}

try {

$client1C = new SoapClient('http://xxx.xxx.xxx.xxx/'Имя веб-сервиса'/ws/SiteExchange?wsdl',

array('login' => 'woodman02',

'password' => 'password',

'soap_version' => SOAP_1_2,

'cache_wsdl' => WSDL_CACHE_NONE, //WSDL_CACHE_MEMORY, //, WSDL_CACHE_NONE, WSDL_CACHE_DISK or WSDL_CACHE_BOTH

'exceptions' => true,

'trace' => 1));

}catch(SoapFault $e) {

trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);

}

if (is_soap_fault($client1C)){

trigger_error('Ошибка подключения или внутренняя ошибка сервера. Не удалось связаться с базой 1С.', E_ERROR);

return false;

}

return client1C;

}

function GetData($idc, $param){

if (is_object($idc)){

try {

$ret1c = $idc->LoadOrders($param);

} catch (SoapFault $e) {

echo "Ошибка</br>";

var_dump($e);

var_dump($ret1c);

}

}

else{

echo 'Не удалось подключиться к 1С<br>';

}

return $ret1c;

}

$OrdersData = Array(

"ВерсияСхемы" => "2.05",

"ДатаФормирования" => "2020-05-29T11:56:10",

"Документ" => Array(

"Ид" => null,

"Номер" => null,

"Дата" => "2020-05-29",

"ХозОперация" => "ЗаказНаПродажу",

"Валюта" => "руб",

"Курс" => "1",

"Сумма" => "6945",

"Контрагенты" => Array(

"Контрагент" => Array(

"Ид" => null,

"Наименование" => "Иванов",

"ПолноеНаименование" => "Иван",

"Роль" => "Покупатели",

"Адрес" => Array(

"Представление" => "Тест",

"Комментарий" => "Тест"

)

)

),

"Время" => "15:30:15",

"СрокПлатежа" => "0001-01-01",

"Комментарий" => "Заказ с сайта",

"Налоги" => Array(

"Налог" => Array(

"Наименование" => "НДС",

"УчтеноВСумме" => "false",

"Сумма" => "0"

)

),

"Товары" => Array(

"Товар" => Array(

"Ид" => null,

"Артикул" => null,

"Наименование" => "Грабля электронная",

"БазоваяЕдиница" => Array(

"Код" => "796",

"НаименованиеПолное" => "Штука",

"МеждународноеСокращение" => "PCE"

),

"СтавкиНалогов" => Array(

"СтавкаНалога" => Array(

"Наименование" => "НДС",

"Ставка" => "0",

)

),

"ЗначенияРеквизитов" => Array

(

"ЗначениеРеквизита" => Array

(

"0" => Array

(

"Наименование" => "ВидНоменклатуры",

"Значение" => "Товар"

),

"1" => Array

(

"Наименование" => "ТипНоменклатуры",

"Значение" => "Запас"

)

)

),

"ЦенаЗаЕдиницу" => "6945",

"Количество" => "1",

"Резерв" => "1",

"Сумма" => "6945",

"Единица" => "шт",

"Коэффициент" => "1"

)

),

"ЗначенияРеквизитов" => Array

(

"ЗначениеРеквизита" => Array

(

"0" => Array

(

"Наименование" => "Организация",

"Значение" => "ИП Чоршамбе Нет Отчества"

),

"1" => Array

(

"Наименование" => "Вид цен",

"Значение" => "1-2 Единая оптовая"

),

"2" => Array

(

"Наименование" => "Склад",

"Значение" => "Склад №1 для торговли"

),

"4" => Array

(

"Наименование" => "Дата отгрузки",

"Значение" => "2020-05-29"

),

"5" => Array

(

"Наименование" => "Статус заказа",

"Значение" => "Подготовка КП"

),

)

),

)

);

$params = Array();

$params["OrdersData"] = $OrdersData;

// Загружаем заказ с сайта.

//$result = $client->LoadOrders($params);

$idc = Connect1C();

$ret1c = GetData($idc,$params);

var_dump($ret1c->return);


Сразу отвечу на один вопрос, который занимал меня. Как 1С будет привязывать к своей номенклатуре мою заявку. Это потрясающее решение от компании 1С, мне такое даже в голову не могло прийти. При получении заявки 1С смотрит по названию (по названию Карл!??, не по Id, не по штрихкоду, а по названию) есть у неё в номенклатуре такой товар или нет, если нет, она тупо его создаёт, 1С-ники умеют поражать. Так что будьте внимательны названия в заявке должно строго соответствовать названию в 1С, иначе наплодите товаров в номенклатуре.


Ура! Пол дела было сделано. Далее я настроил проброс портов на нашем Mikrotik-е, что бы к 1С серверу можно было обратиться только с IP адреса Web-сервера и определенного порта (не скажу какого).


Дописал скрипты и вот наш интернет магазин сделанный на Joomla + Seblod отправляет заявки в 1С. Всё теперь я то же могу брать 30 т.р. за подключение сайт к 1С ))))

Показать полностью
9

За что все ненавидят PHP?

Среди наиболее популярных и одновременно наиболее ненавистных языков программирования, PHP занимает почетное первое место. Всем известно, что изначально язык был создан лишь как инструмент для управления страницами (Personal Home Page) и обладал скудными возможностями. С тех пор прошло много времени и сейчас PHP обладает всеми возможностями современного языка программирования. В нем хорошо поддерживается ООП (абстрактные классы, интерфейсы, трейты, позднее статическое связывание). В связи с этим к нему легко применяются паттерны, что позволяет писать хорошо структурированный код. Его хейтили за динамическую типизацию, но с появлением php 7 можно включить строгую типизацию прописав в начале файла директиву declare(strict_types=1). С выходом версии 7.4 у него появилась строгая типизация свойств класса при помощи type hint.


Понятно, что бОльшая часть разработчиков,  которые не считают PHP нормальным языком программирования, никогда не писали на нем , но так как это уже локальный мем для разработчиков, шутить над ним будут всегда. Но есть ли реальные причины ненавидеть PHP в качестве инструмента для разработки в 2020 году?


Поэтому вопрос, почему вы считаете PHP плохим/хорошим ЯП? Заслуживает ли он на жизнь за неимением лучших альтернатив? Виноваты ли индусы в плохой репутации языка, потому что большинство из них клепает говнокод на фрилансе?) В общем, поделитесь пожалуйста своим мнением о PHP,  учитывая последние изменения и развитие языка вплоть до версии 7.4.


Натолкнуло меня на эти мысли юмористическое видео о жизни php разработчика. Поэтому я решил его перевести и озвучить.

Показать полностью 1

DevelStudio и DevelNext. О судьбе этих проектов рассказывает автор - Дмитрий Зайцев на своём канале в YouTube

Здравствуйте!

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


Для начала о себе, я Web программист с более чем 10 летним стажем с PHP, так же немного знаком с NodeJS, бывает под Windows пишу на Delphi, отлично администрирую CentOs(знаком с ним начиная аж с 4-ой версии, это примерно ещё 2005 год). Тем не менее в этом посте речь пойдёт не о мне, а о одном разработчике - Дмитрие Зайцеве, который как оказалось сделал на мой взгляд отличный продукт, который он сам считает провалившимся, не смотря на такое мнение автора я пользуюсь им до сих пор. Сам я не считаю проект провальным, и очень жаль что DevelStudio не развивается(хотя может быть я не рублю фишки ведь существует DevelNext).


Что такое DevelNext - это среда разработки Windows приложений с возможностью компиляции в EXE на языке PHP с GUI. PHP достаточно лёгкий в изучении язык, обладая небольшими знаниями о PHP среда DevelStudio уже позволяла создавать полезные Windows программы. Не смотря на то что я больше изучаю Delphi для этого, существуют задачи когда я понимаю что мне проще зайти на сайт студии, скачать инсталятор размером порядка 30 мегабайт, установить студию и сделать ещё за 15,30  минут- ну час, задуманное, и это часто гораздо быстрее чем альтернативные варианты(не буду спорить возможно лично для меня). Хотя в данном случаи я говорю о разработке программы для себя, поскольку для продакшен есть у студии проблемы, одна из которых на мой взгляд заключается в том что библиотека которую таскает с собой будущее EXE приложение, а именно phpts5.dll определяется как вирус, хотя я возможно просто не разобрался, автор говорил по этому поводу что то в видео, может быть есть возможность сделать поведенеи антивирусов лояльным к этой библиотеке.

Кстати DevelStudio можно скачать по адресу - http://develstudio.ru

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


Так вот пользуюсь я средой DevelStudio до сих пор с периодическим успехом, и только на прошлой неделе узнал, что оказывается эту среду сделал 1 человек, узнал я это когда случайно наткнулся на его канал в YouTube который существует с начала 2020 года. Лично мне было очень интересно послушать про то как создавалась студия, и про то почему автор считает проект провалившимся, хотя повторюсь я не считаю.

Адрес канала Дмитрий Зайцева - https://www.youtube.com/channel/UCsz2PGAd7qAa0cx5xiVSBSQ

Это видео одно из самых лучших и увлекательных для меня как программиста из тех что я посмотрел за последние несколько лет. Пишу этот пост и рассчитываю что Вы так же проведёте время с интересом за его просмотром.

Кроме того на ютуб канале Дмитрия ещё не так много подписчиков, поэтому есть возможность пообщаться с разработчиком среды в комментариях.


Те, кто считают что написание Windows программ на PHP - это извращением, такое мнение имеет право на существование, лично я его не разделяю, и на практике знаю когда применение DevelStudio более чем оправдано.


Ещё момент на который я прошу обратить внимание! Я не Дмитрий, и Дмитрий никак не просил меня писать этот пост. Мой IP адрес с другого региона, более того у меня есть свой канал на YouTube и он на юридическую тематику, пока я не хочу его публиковать.

Пост я публикую по 2-м причинам: 1) действительно лично мне было интересно узнать что среда разрабатывалась 1 человеком, и узнать как это было, видео увлекательное и я как программист считаю оно зайдёт другим программистам.

2) интерес к SMO. У меня достаточно большой опыт в SEO, и SMO для меня не ограничение, поэтому одна из причина на которых я зарегистрировался на Pikabu и пишу этот пост - понимание какие возможности дают SMO технологии.


Ещё в комментариях к посту я попросил бы,е ли Вы знаете YOuTube каналы других программистов, напишите по Вашему мнению кого стоит посмотреть: интересует Ваше мнение как о каналах содержащих насыщенных информационный контент, так и видео которые можно посмотреть после работы для отдыха.


Прошу сильно не минусовать, повторюсь - это первый пост, ну и правила сообщества я конечно же ещё не прочитал :)

Показать полностью
Отличная работа, все прочитано!