- PVSM.RU - https://www.pvsm.ru -
Лень – двигатель прогресса. Люди постоянно создают вещи, призванные облегчить их нелегкую долю. Именно лень позволила тряпке и швабре превратиться в моющий робот-пылесос. Похожие процессы происходят и в сфере компьютерных технологий. Вместо того, чтобы довольствоваться программированием в машинных кодах, общаясь с процессором через интерфейс перфокарт, люди стали придумывать всякие клавиатуры, мышки и мониторы, а так же языки программирования. Последние становились все более и более высокоуровневыми. В результате имеем то, что иммем — далеко неполный список ЯП [1]. Насладившись всем великолепием этого многообразия, программисты внезапно стали осознавать, что теперь им лень учить все эти языки, и они стали мечтать о единообразии на всех платформах. Так родилась JAVA. Те, кому было лень ее учить, продолжали мечтать и писать на JavaScript. Их мечты были услышаны, и с другой стороны появился node.js. А что же теперь делать нам? — подумали PHP программисты, завистливо поглядывая на чужое счастье. Засучив рукава, они принялись напряженно работать, так появился проект php.js
Удивительно, но на Хабре этот достойный внимания ресурс упоминается [2] лишь вскользь. Восполню этот очевидный пробел.
Начну с перевода страницы About [3]:
php.js – это сайт, предоставляющий создаваемые сообществом альтернативы на JavaScript для функций PHP.
Если вы хотите выполнять высокоуровневые действия на платформах с JavaScript таких как веб-браузеры, node.js и т.п., то, вероятно, вам придется засесть за JS код, объединяющий низкоуровневые функции языка и выстраивать их до тех пор, пока вы не получите что-то полезное вроде: strip_tags(), strtotime(), number_format(), wordwrap() или date().
PHP — язык, обладающий многими высокоуровневыми функциями, но, не смотря на то, что они не всегда реализованы так единообразно, как нам бы этого хотелось (чаще всего по той причине, что они повторяют лежащие в их основе функции на С), этот язык имеет огромное число последователей, привыкших к этому синтаксису, так что вполне разумно было бы взять его API за основу, заодно избавив себя от необходимости писать собственную документацию, что в целом, мы надеемся, сможет немного облегчить нашу жизнь.
С другой стороны, ценя JS за его привлекательные возможности, мы призываем вас к их изучению. Никогда не используйте php.js в качестве оправдания своего нежелания уделить этому время. По этой же причине мы не портируем весь язык PHP целиком или все его управляющие структуры; мы остановили свой выбор только на функциях.
Следует добавить, что расценивая портирование вообще всего как определенный вызов, мы решили включить и даже такие низкоуровневые PHP функции как strpos, не смотря на то, что в JavaScript могут существовать их близкие аналоги (String.indexOf). Помимо интеллектуального вызова для нас самих, такое портирование открывает php.js, как для всевозможных умственных упражнений, так и позволяет ему служить целям изучения JS. Таким образом, мы видим себя как некий большой ресурс, а разработчики сами могут решить, когда для них есть смысл что-то брать отсюда. И когда нет.
Для совместной работы мы используем github [4]. Комментарии на сайте только для замечаний. Пожалуйста, прочитайте наши руководства в Wiki [5].
php.js имеет дуальную лицензию – MIT и GPL. Это означает, что вы можете использовать php.js согласно условиям либо лицензии MIT [11], либо согласно Открытому Лицензионному Соглашению GNU (GPL) [12] Версии 2. (сравнительный анализ [13] лицензий прим.автора)
Лицензия MIT позволяет вам использовать эту библиотеку в любом пригодном для вас виде, даже в коммерческих проектах, коль скоро вы сохраняете оригинальную лицензию при распространении своего продукта. По сути, вам даже не требуется раскрывать ваши модификации, хотя это было бы крайне желательно и, вдобавок к этому, дало бы вам уверенность в том, что ваши изменения не будут потеряны после апгрейда. С другой стороны, лицензия GPL делает эту библиотеку совместимой с другими GPL проектами.
Каждая функция на сайте приведена с подробными комментариями и примерами использования (не забудьте и про родную документацию PHP [16]). Для получения исходников конкретной функции нужно нажать на ссылку get on github в правом верхнем углу блока с кодом. Советую забрать сразу все исходники [4] к себе, так будет удобнее. Так как библиотека весьма обширна, то нет смысла объединять все эти функции в один большой файл, он окажется излишне тяжелым. В зависимости от потребностей конкретного проекта необходимо выборочно формировать библиотеку с нужными вам функциями. Так же имеет смысл подумать об оборачивании этого API в какой-нибудь контейнер для того, чтобы не засорять пространство глобальных имен. Ну и не забывайте про оптимизацию и сжатие кода перед отправкой в браузер.
Резюме можно сделать следующее – php.js это стабильная и обширная JS библиотека с хорошей документацией, которая может упростить/ускорить разработку ваших проектов. Так как на вкус и на цвет, все фломастеры разные, то пусть в вашем арсенале появится еще и этот инструмент, глядишь, когда и пригодится; или просто будет лень варить очередной титановый велосипед и строгать костыль красного дерева.
Автор: KEKSOV
Источник [17]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/21898
Ссылки в тексте:
[1] список ЯП: http://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
[2] упоминается: http://habrahabr.ru/search/?target_type=comments&order_by=relevance&q=phpjs
[3] About: http://phpjs.org/about/
[4] github: https://github.com/kvz/phpjs
[5] Wiki: https://github.com/kvz/phpjs/wiki/_pages
[6] node-mysql: https://github.com/masuidrive/node-mysql
[7] harmony framework: http://www.harmony-framework.com/
[8] node.js: http://github.com/ry/node/blob/1107a1bd1e367d3056b8c3975c2026b7402e9f61/lib/multipart.js#L174-200
[9] Ext for Yii: http://www.ext4yii.com/
[10] node-phpjs: https://github.com/cranic/node-phpjs
[11] MIT: http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT
[12] GNU (GPL): http://ru.wikipedia.org/wiki/GNU_General_Public_License#GPL_v2
[13] анализ: http://www.libertarium.ru/18586
[14] здесь: https://github.com/kvz/phpjs/wiki/ExtensionList
[15] библиотека: http://phpjs.org/functions/
[16] документацию PHP: http://php.net/docs.php
[17] Источник: http://habrahabr.ru/post/161469/
Нажмите здесь для печати.