Описание тега hacklang

Hack is a open source programming language that reconciles the fast development cycle of PHP with the discipline provided by static typing, while adding many features commonly found in other modern programming languages.
1 ответ

Десериализовать JSON в строгом режиме Hack

У меня есть вложенный файл JSON, состоящий из ключей и значений, которые являются только строковыми. Но структура файла JSON не является фиксированной, поэтому иногда он может быть вложен в 3 уровня, иногда только в 2 уровня. Интересно, как я мог се…
11 фев '17 в 09:03
1 ответ

Как запустить сервер HHVM CLI

HHVM 3.19 добавил что-то под названием режим сервера CLI: https://hhvm.com/blog/2017/04/13/hhvm-3-19.html Идея сервера CLI заключается в том, что некоторые кэши могут использоваться совместно и что можно избежать затрат на запуск HHVM. К сожалению, …
03 июл '18 в 18:07
0 ответов

Синтаксис хака: что означает вопросительный знак, за которым следует оператор объекта?

В Hack, что здесь происходит и что это значит? Как ты это читаешь? $foobar = $foo?->bar();
23 сен '16 в 00:52
2 ответа

Гибридный PHP/Hacklang: используйте проверку типов на обычном PHP с комментируемыми аннотациями типов

В настоящее время я не могу собрать hhvm из-за отсутствия доступа к 64-битной виртуальной машине, поэтому я не смог использовать имеющуюся у них проверку типов. Их документация, кажется, не описывает работу проверки типов (hh_server и hh_client?) В …
22 мар '14 в 13:20
1 ответ

Объедините несколько общих типов в хакланг

Я пытаюсь реализовать функцию снижения от подчеркивания в хаке. Подчеркивание, функция приведения имеет следующее поведение: Если никакая памятка не передается при первоначальном вызове Reduce, итератор не вызывается в первом элементе списка. Вместо…
15 июн '16 в 16:03
1 ответ

Тип HackLang для разных объектов

Допустим, у меня есть статический соединитель, который позволяет прокси-серверам экземпляры разных адаптеров: $m = Connector::take('mcrouter'); $db = Connector::take('production_database'); Соединитель должен инициировать и обрабатывать соединения в…
15 авг '15 в 10:31
2 ответа

Взломать - как проверить, что экземпляр использует черту?

Как я могу проверить, использует ли экземпляр класса Trait? Я не могу использовать instanceof потому что Черта неосуществима.
22 дек '17 в 03:06
1 ответ

PHPStorm для Hack Language

Я здесь новый пользователь, и у меня недостаточно очков репутации, чтобы прокомментировать / задать этот вопрос: поддержка Hack Lang в IDE. Итак, я надеюсь, что после последней записи, предоставленной Фемидой Берис, кто-то смог заставить PHPStorm пр…
04 фев '15 в 02:34
1 ответ

В чем разница между Hack и PHP?

Я покинул мир PHP на несколько лет и с тех пор работал в C#.Net. Я думаю о том, чтобы снова погрузиться в PHP, и сегодня я наткнулся на http://hhvm.com/ и он кажется более похожим на C#, чем на чистый PHP. Итак, мой вопрос: в чем разница между языко…
08 апр '14 в 12:21
2 ответа

Рамки для хакланга?

Хакланг все еще может быть относительно новым, но есть ли какие-либо фреймворки (например, MVC), которые хорошо документированы для него? Я наткнулся на Fastuc или Hack-mvc, но они, кажется, еще не готовы, и документации довольно мало; Какие-нибудь …
01 апр '15 в 09:03
1 ответ

Взломать обратно на php

Я искал хакерский язык Facebook, но у меня есть сервер, на котором работает несколько php-сайтов. Теперь мне было интересно, есть ли инструмент, который может конвертировать взломать обратно в php, так что он может быть запущен на моем сервере, но я…
04 июн '14 в 19:35
2 ответа

Изменить значение лексической переменной в выражении HHVM/Hack lambda?

Можно ли изменить значение переменной с лексической областью в лямбда-выражении Hack? function allTrue(Map<string, bool> $map): bool { $valid = 1; $map->map($a ==> $valid &= $a); return $valid === 1; } $map = Map{'foo' => true, 'b…
06 дек '14 в 16:47
3 ответа

Взломщик проверки типов не распознает ключевое слово global внутри функции

Я использую HHVM для написания системного инструмента и не могу понять, почему этот код выдает ошибку при запуске hh_client $__al_paths = array(); function requires(string $classPath): void { global $__al_paths; $className = basename($classPath); if…
03 окт '14 в 10:16
1 ответ

Функция или метод как значение в коллекции

Можно ли передать вызов функции или метода в качестве значения в коллекции любого типа? $collection = Vector { function(){} }; Приведенный выше код генерирует фатальную ошибку: синтаксическая ошибка, неожиданный T_FUNCTION, ожидание '}'
26 фев '15 в 08:31
1 ответ

Как определяется система типов языка Hack?

Пожалуйста, дайте точное описание системы типов языка Hack. Кажется, что он не существует в Интернете - все, что я могу найти, это примеры, разбросанные по всем документам, поэтому, пожалуйста, опишите это подробно в своем ответе. Например, я хотел …
23 июл '14 в 22:45
1 ответ

Выполнить хаксификатор из PHP

Когда я пытаюсь запустить Facebook HHVM hackficator из PHP, я получаю эту ошибку Fatal error: exception Failure("unstable www state before modification") Я погуглил ошибку и нашел ссылку в коде, написанном на OCaml https://github.com/facebook/hhvm/b…
04 фев '15 в 01:11
1 ответ

Hacklang неожиданная ошибка интерфейса

Я изучаю хакланг и имею проблемы с использованием интерфейса в разных файлах. Вот мой код IpAuthorizedController.php <?hh namespace App\Controller\Interface; interface IpAuthorizedController { } HomeController.php <?hh namespace App\controller…
08 апр '18 в 12:43
1 ответ

Асинхронный сервер в хакланге

Я пытаюсь создать асинхронный сервер в Hacklang. Имя файла first.php: <?hh namespace MyExperiment; async function server(string $host, int $port): Awaitable<void> { $master = stream_socket_server("tcp://$host:$port"); stream_set_blocking($m…
08 янв '16 в 18:37
1 ответ

Что делает это требование класса циклическим определением класса?

Проверщик типов считает это требование класса интерфейсом IBase быть циклическим: <?hh // strict interface IBase { require extends Derived; } class Derived implements IBase {} // Cyclic class definition : IBase Derived (Typing[4013]) Насколько я …
12 май '17 в 04:58
2 ответа

Как бы вы перешли с PHP на Hack?

Facebook представил новый язык программирования, который выглядит в основном как расширение PHP. Они назвали это Hack, и это работает на их двигателе HHVM. Посмотрев их сайт и немного почитав об этом, я подумал, насколько плавной может быть миграция…
20 мар '14 в 17:52