Как стать автором
Обновить
12
0
Lyshenko Vladislav @vladdnepr

Senior PHP Developer

Отправить сообщение

Нужно запускать без прослойки в виде bash или gnome-terminal

https://github.com/balpom/symfony-messenger-and-workerman/blob/main/bin/runner#L21

Нужно просто почитать документацию как рекомендуют работать

https://symfony.com/doc/current/components/process.html#using-features-from-the-os-shell
https://symfony.com/doc/current/components/process.html#process-signals

I found an easy solution to get rid of the notification that worked in my case (not sure if it'll work in every case) and that didn't required to disable SIP nor go into recovery was (I'm in Big Sur v11.5):

First, block your Mac from reaching the domain iprofiles.apple.com. I use LittleSnitch as my firewall, so I blocked it there, but you can also use your hosts file like:

sudo echo "0.0.0.0 iprofiles.apple.com" >> /etc/hosts
Then, I checked the current enrollment profile

sudo profiles show -type enrollment
This will show you the current enrollment configuration your Mac has, you can even block the domain mentioned in ConfigurationURL just to be safe.

After than, I proceed to delete the profile, in my regular session, not recovery, although it would probably also work in recovery:

sudo profiles remove -all
Keep in mind that this command will delete all other profiles you may have, in my case, I didn't more.

Finally, you can check for the enrollment profile again, I would get an error saying that it could not retrieved given that I blocked the domain from where it's retrieved:

sudo profiles show -type enrollment
Error fetching Device Enrollment configuration: (34000) Error Domain=MCCloudConfigurationErrorDomain Code=34000 "The device failed to request configuration from the cloud." UserInfo={NSLocalizedDescription=The device failed to request configuration from the cloud., CloudConfigurationErrorType=CloudConfigurationFatalError}
And the notification is gone for good. I'll report back in the next OS upgrade to see if it comes back.


вот что я нашел и что на данный момент точно работает

Однако при тестировании этого всего столкнулся с тем, что если по каким-то причинам (не важно по каким — может, по таймауту / по числу обработанных message’s да или просто по kill) Worker Symfony Messenger прекратит свою работу, то новые консоли с Worker’ами Symfony не открываются.
При этом в «Системном мониторе» видно, что соответствующие PHP-процессы Worker’ов Workerman’а вполне себе живы-здоровы и умирать не собираются (если б умерли — то были бы автоматически перезагружены Workerman’ом и консоли бы открылись).

Особенность запуска с прослойкой в виде bash

https://gist.github.com/portante/e81bc6b8e7560a6b3d9dd1acfdd4d427

Нужно прокинуть через bash до php прохождение posix signal

Удачи. Для 14 лет очень даже неплохой багаж получился

На всякий случай приведу пример что я отредактировал на Catalina чтобы избавиться от уведомлений каждые 3 часа

% cat /System/Library/LaunchAgents/com.apple.ManagedClientAgent.enrollagent.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>com.apple.ManagedClientAgent.enrollagent</string>
    <key>ProcessType</key>
    <string>Background</string>
	<key>ProgramArguments</key>
	<array>
		<string>/System/Library/CoreServices/ManagedClient.app/Contents/Resources/ManagedClientAgent</string>
		<string>-j</string>
	</array>
<!--
	<key>StartInterval</key>
	<integer>7200</integer>
-->
</dict>
</plist>


Как видно я закомментировал ключ StartInterval. В моем случае это решило проблему с уведомлениями.

На каталине я решил проблему аналогично. Нашёл xml файл где прописано как часто выводить уведомление и закомментировал нужную секцию. Я купил б/у ноут с mdm профилем.

Уже звонил. Сказали в течении месяца партия придет и там будет ваша «горижопа»
Здравствуйте. Спасибо за замечания. Попробовал по своему же гайду все поставить и столкнулся с описанными проблемами.
  1. Дополнил текст
  2. Добавил пояснение что это для примера
  3. Исправил config, что бы он более соответствовал настройками по-умолчанию. Теперь проблем не будет.
  4. Просто забыл убрать из security секцию acl. Эта секция и так вынесена в отдельный файл. Так же я еще нашел проблему с командой acl:init, она была у меня init:acl.
  5. Не получилось воспроизвести. Попробуйте еще раз сначала создать проект и пройти все пункты.
Он полностью рабочий на данный момент. В будущем опять все может поменяться. Попробуйте проделать все, что описано в статье, было бы интересно увидеть воспроизводимость не только у меня.

Опишите более подробно что сделали и что получили, это поможет мне понять и помочь вам

Могу ответить только опосредовано. Судя по коммитам, то какое-то развитие есть. Смотрели issues на github? Есть там что об такого рода ошибках?

Расскажите о своём опыте. Наверняка у вас есть что сказать про ограничения и недостатки Sonata Admin. Я эту библиотеку не защищаю, она просто в топе Google при поиске административной части для Symfony.

Спасибо за замечание. Действительно при написании статьи в сам материал этот кусок вставил, а вот в проект не добавил и поэтому пропустил. Исправил.
Спасибо за идеи для еще одной статьи. Обязательно после написания укажу как продолжение в конце этого материала.

Да, верно вы подметили, что с вашими проблемами я пока не сталкивался, потому что мне было достаточно того, что я описал в статье.

CRUD можно и без Sonata сделать, но перед этим нужно задать себе вопрос — этот проект будет развиваться дальше или нет. От ответа зависит выбор CRUD или Sonata. Если проект будет развиваться, то однозначно Sonata или аналоги. Банально поддержка своего CRUD будет обходится дороже. Если проект типа сайта визитки с парой табличек, то здесь можно и самому написать.
Спасибо, дополнил.
Эх, никто не читает вводный текст статьи. Я не спорю, что гайдов масса, но есть НО.

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

Так что все таки эта статья несет в себе какую-то ценность.
Просьба, если ставите минус статье, то аргументировать в комментарии, что не понравилось. Это позволит мне в будущем исправить ошибки.
Я перешел на новую работу и начал проект на Symfony 4, хотя не имел ранее опыта работы с ним, а работал с Yii2. Поначалу мозги вскипели, но теперь я не понимаю как я раньше пользовался Yii2 с его «прибитыми гвоздями» библиотеками. Так что — дерзай.
Swagger здесь только как средство визуализации OpenAPI 3 JSON документации. У меня не было цели написать свою реализацию генерации JSON (на данный момент есть Swagger 2 и OpenAPI 3), поэтому воспользовался тем, что есть. Но реализовать SMD вариант документации хорошая идея, просто пока что она сейчас не в моих приоритетах.
1

Информация

В рейтинге
Не участвует
Откуда
Днепр, Днепропетровская обл., Украина
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
От 10 000 $
JavaScript
HTML
CSS
JQuery
Web development
Twitter Bootstrap
PHP
MySQL