Статьи

PHP и я, часть 2

В последней части мы рассмотрели, почему IBM i (AS / 400, System i, i) — не динозавр, а очень мощная машина, которая может функционировать как автономный мэйнфрейм или как очень экономичный и масштабируемый сервер. Просто помните, что произойдет, если вы не верите этому; Я буду выслеживать тебя и сражаться с тобой в баре. Предупрежден, вооружен, как однажды сказал Cacciaguida.

Мы также говорили о том, как это связано с вами, сумасшедшим веб-программистом: многие люди в мире i не имеют времени для изучения PHP (и HTML, и CSS, и JavaScript, и JQuery, и т. Д.), И поэтому есть реальная возможность чтобы вы продали свои навыки в RPG-ориентированном магазине IBM i, который хочет сделать немного PHP (и каждый хочет сделать что-то, чтобы преодолеть тот факт, что IBM не смогла предоставить i собственный интерфейс GUI, отличный от Java).

В этом несколько рискованном эпизоде ​​мы рассмотрим только то, что вам нужно, чтобы иметь возможность заниматься разработкой i. Многие в мире i считают, что PHP является родным для i, но я не думаю, что это действительно так. Для меня «родной» означает, что он просто работает, без проблем или вопросов, ничего особенного не нужно делать, это просто происходит, когда вы видите кого-то в переполненной комнате и знаете, что он «он». Это не так, как это работает с PHP и я.

IBM и Zend

RPG является родным языком для i, но PHP был добавлен, и с соответствующими мостами вы можете запускать PHP так же легко (более или менее), как RPG. Инструментом для RPG является компилятор RPG, поставляемый IBM (как платный элемент, конечно). Мост, позволяющий PHP работать на i, — это пакет Zend (сервер / студия / инфраструктура), предоставляемый Zend.

Да, это те люди, которые более или менее стали корпоративным лицом PHP, и они установили необычайно тесные отношения с IBM. Они уезжают в отпуск с Томом Уотсоном, и в противном случае поклоняются в храме IBM в Армонке. Взамен IBM предоставила им ключи PHP для i. Zend в значительной степени является эксклюзивным поставщиком, если вы хотите использовать PHP на i. Я говорю в значительной степени, потому что у Aura также есть стек PHP, который вы можете приобрести, но очень мало сомнений в том, что реализация Zend — это мяуканье кошки, колени пчелы и весь этот джаз. То, что делает реализацию Zend превосходной, это не вещи PHP, а написанные ими дополнительные вещи, которые помогают PHP более плавно и более естественно взаимодействовать с i. Такие вещи, как асинхронный интерфейс i, который позволяет создавать PHP-программы, которые будут работать не только в сети, как в Интернете, но и в пакетном режиме, так как им может понадобиться работать в настоящем мэйнфрейме.

Суть в следующем: если вы хотите использовать PHP, значительный PHP, на i, вам нужно использовать пакет Zend на i. А это значит, что когда вы заходите в магазин, им нужно установить пакет Zend на своей машине. Дело в том, что нет разумной альтернативы Zend на i.

В некоторых магазинах уже может быть установлен Zend, но в большинстве нет. И они могут сказать вам, что у них нет одобрения бюджета на покупку дополнительного программного обеспечения (и поэтому они могут захотеть, чтобы вы просто могли сделать это из Интернета, что невозможно, поэтому забудьте об этом). К счастью, у Zend есть соглашение с IBM для всех пользователей i, находящихся на обслуживании (которые будут почти все пользователи i, и вы не хотите путаться с теми, кто не на обслуживании), чтобы иметь возможность получать бесплатные версии Zend продукт.

Сам продукт Zend состоит из трех компонентов. Первый — это Zend Server, который предоставляет стек, необходимый для запуска PHP на i (язык PHP, экземпляр сервера Apache и база данных SQL). Zend Server также включает в себя любые дополнительные модули, написанные для упрощения работы с i. Соглашение предусматривает версию Zend Server, в частности, Zend Server Community Edition, которую можно бесплатно загрузить на i. Конечно, это не премиум-версия, но большинство недостатков, связанных с ней, связаны с развертыванием крупномасштабных приложений PHP и не требуются до тех пор, пока вы не расширили свое приложение PHP до такой степени, что требуется версия для предприятий. К этому времени магазин подключен, и, если купить версию, к ней уже будет приложен солидный ROI.

Второй компонент — Zend Studio. Это то, что будет работать не на i как таковом, а на подключенных к нему компьютерах. Это в основном IDE, на которой вы разрабатываете свои PHP-скрипты вместо текстового редактора. Конечно, он состоит из текстового редактора, но также включает отладчик и тестирующее программное обеспечение.

Общественный выпуск Zend Server — это то, что доступно на любой платформе, которая использует Zend для предоставления своего стека, но версия Zend Studio специфична для i, как и соглашение, которое Zend имеет с IBM. Вы можете загрузить Zend Studio бесплатно как пользователь i, но предостережение заключается в том, что после его загрузки вы можете загружать любые обновления или новые версии. Вы застряли на этой версии, пока не решите заплатить за новую версию.

Третий компонент — это Zend Framework, который обеспечивает то, что делает любая другая платформа. Это также можно скачать с Zend Studio.

Разработка на I

Один вопрос, который у вас может возникнуть, — это где поставить сценарии, которые вы разрабатываете. Если вы имеете дело с программами RPG, они находятся в специальных файлах, таких как QRPGLESRCQCLSRC Они хранятся в базе данных для самого i. Но PHP-скрипты хранятся где-то еще.

В каждом я есть то, что называется IFS. Многие люди не слишком много знают об этом, но в основном это ориентированная на Windows область, где вы можете создавать папки (я использую библиотеки, а не папки) и хранить документы. Это где ваши PHP-скрипты будут храниться; в /htdocs/*

Есть еще одна вещь, о которой мы должны поговорить; а именно тот факт, что вы будете разрабатывать не только веб-приложение на PHP / JavaScript / CSS, но и RPG-приложение. То есть, как я уже говорил в предыдущей статье, RPG — это не мертвый язык. На самом деле это очень превосходный язык для написания бизнес-приложений. Он отлично справляется с управлением бизнес-логикой и имеет встроенный язык баз данных, более простой, чем SQL (хотя вы можете использовать SQL с RPG). Старый удар по RPG заключался в том, что он был позиционным по своей природе и, следовательно, странным (последние версии RPG устраняют это и предоставляют более похожий на английский синтаксис языка.) Чтобы иметь смысл, любое приложение должно быть комбинацией RPG и PHP. , с модулями каждого типа.

Имеет смысл сделать C и M частью MVC в RPG и V в PHP. Почему я это говорю? В глубине души я программист мэйнфреймов (во-первых, Cobol, потому что это был язык, который использовал Бог для создания мира, а во-вторых, RPG, потому что все, что произошло с 1810 года, было сделано в RPG).

RPG люди привыкли создавать одну RPG-программу, которая объединяет все три в один простой монолитный беспорядок, который почти гарантированно не будет обслуживаемым после того, как оригинальный программист ушел. В результате, первое, что вам нужно сделать, это заставить людей начать с разработки типа MVC. Это было чем-то очень сложным в среде RPG до примерно десятилетия назад, но теперь с ILE и RPG / Free это можно сделать.

Вывод

И это все. По крайней мере, для начала. Последняя из наших серий не за горами, и мы поговорим о том, что входит в разработку хороших бизнес-экранов. А пока удачи!

Изображение через Fotolia