Progress28.ru

IT Новости
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Php разработка приложений

Создаем первое PHP приложение: Часть №1

Этот урок ориентирован на тех, кто совсем немного знаком с PHP и Объектно-Ориентированным Программированием (ООП) и хотят создать простое веб приложение.

Для более удобного восприятия материала урок состоит из 3-х частей.

Обзор серии уроков

Нам необходимо изучить очень много материала. Вот план:

Часть №1 — Создаем проект и создаем первый класс

— создаем набросок проекта
— создаем файлы и папки
— создаем класс для операций с базой данной: DB.class.php

Часть №2 — Доделываем серверную чаcть

— Создаем класс для пользователей (User)
— Создаем класс UserTools
— Регистрация Логин Выход

Часть №3 — Создаем внешний интерфейс

— Формы
— Обработка форм
— Отображение информации сессий

Начинаем наш проект!

Создаем план действий

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

Структура Файлов и Папок

ООП PHP программирование использует классы и объекты для выполнения необходимых для приложения операций. При планировке Вам необходимо подумать о том, какие классы Вам понадобятся. Для данного проекта мы создадим 3 класса. Первый класс — User (будет содержать информацию о пользователе с функцией простого сохранения save()), второй — UserTools (будет содержать функции, которые необходимы пользователям, такие как login(), logout() и другие. ), третий — класс БД (он будет выполнять роль связующего звена — подсоединение к БД, внесение изменений, вставка новых рядов, и многое другое).

Кроме классов, мы также будем использовать файл с названием global.inc.php. Этот файл будет вызываться с каждой страницы и выполнять обычные операции, которые нам понадобятся. К примеру, в этом файле мы будем выполнять подключение к БД на каждой странице.

Другие файлы — это страницы для пользователей: index.php, register.php, login.php, logout.php, settings.php и welcome.php.

Общая структура у нас будет выглядеть так:

Создание Базы Данных и таблицы users

На Вашем сервере должен быть установлен MySQL. Для начала необходимо создать новую базу данных для Вашего приложения. В этой БД создайте таблицу users, которую мы будем использовать для этого урока. Можете использовать следующий код SQL:

Первичным ключом у нас выступает поле “id”, и именно его мы будем использовать для идентификации наших пользователей.

Уникальным полем у нас также будет “username”. Другие необходимые поля “password”, “email”, и “join_date”.

Создаем класс DB.class.php

Цель данного класса очень проста: как можно больше уменьшить использование SQL при обращении к БД, а также организовать данные в удобный для нас формат.

Ниже приведен код:

Объяснение кода

После создания класса Вы видите 4 переменные: $db_name, $db_user, $db_pass, и $db_host. В них необходимо внести данные для подключения к БД. $db_host обычно localhost. Перед этими переменными указано «protected» — это означает, что они будут не доступны вне этого класса. Внутри же класса их можно выводить используя $this->db_name, $this->db_user, и т.д.

Первая функция называется connect(). Эта функция содержит защищенные значения для соединения с БД. Это соединение будет открыто для использования в любом месте текущей страницы (не только внутри класса).

Вот пример использования этой функции вне класса:

Вторая функция называется processRowSet(). Цель данной функции — взять объект результата mysql и конвертировать его в ассоциативный массив, в котором ключами являются название колонок. Функция проходит по каждому ряду и функция mysql_fetch_assoc() преобразовывает каждый ряд в массив. Ряд далее передается массиву и возвращается с помощью функции.

Существует второй аргумент $singleRow, который содержит значение по умолчанию. Если значение true, выводится только один ряд вместо массива. Это очень полезно, если Вы ожидаете получить один результат (например, при выборе юзера из БД используя уникальный id).

Последние 3 функции выполняют простые функции MySQL: select, insert, update. Цель данных функций минимизировать количество SQL кода, который необходимо использовать где-либо в другом месте приложения. Каждая функция создает SQL запрос на основе переданного значения и выполняет этот запрос. В случае select(), результаты форматируются и выводятся. В случае update(), выводится true при успешном выполнении. В случае insert(), выводится id нового ряда.

Вот пример как Вы можете изменить данные пользователя в БД используя функцию update():

Вот и все на сегодня! До следующих частей!

Вторая часть урока тут, третья — тут

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.buildinternet.com
Перевел: Максим Шкурупий
Урок создан: 14 Декабря 2009
Просмотров: 197934
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Читать еще:  Df dferh 01 ошибка при получении

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Создание GUI приложений на PHP


Темой о разработке GUI приложений на PHP сегодня, пожалуй, уже никого не удивишь. Для этого существует не одно решение, есть как развивающиеся проекты, так и умершие. Но этот пост будет не о тех и не о других, а о новом расширении для PHP — библиотеке PHPQt5, а точнее о её более продвинутой реинкарнации — о PQEngine.

P.S. PHPQt5 не имеет ничего общего с более известной библиотекой php-qt!

Предисловие

По сути, PQEngine — это SAPI модуль, но позиционируется он как движок, реализующий интерфейс для исполнения php-скриптов при помощи Zend API и предоставляющий доступ к части фреймворка Qt.
Пока, к сожалению, к очень малой его части. Можно выделить основные из них: визуальные компоненты Qt (Widgets), компоновщики (Layouts), система соединений сигнал->слот (connect()), управление событиями (QEvents) и многопоточность, предоставляемая классом QThread.

Создание проекта

Для упрощения создания и сборки проектов существует очень простая в использовании утилита — PQBuilder. Это приложение на 99% написано на PHP и демонстрирует скромные возможности движка PQEngine.
Скачать утилиту можно на официальном сайте библиотеки PHPQt5: http://phpqt.ru/download/pqbuilder

Интерфейс сборщика проектов:

Все что от нас требуется — это указать название проекта, путь его размещения и шаблон. В зависимости от выбранного шаблона, сборщик создаст php-файл с базовым кодом, которого будет достаточно для запуска будущего приложения, затем откроет проводник Explorer в папке проекта, где мы увидим всего два файла и одну папку:

  • main.php — основной файл проекта с исходным кодом приложения;
  • %projectname%.pqb — файл проекта PQBuilder, в котором храниться некоторая информация о созданном проекте;
  • build — каталог сборки проекта.

Созданный проект с шаблоном QWidget Application

Код который мы видим на скриншоте был скопирован из шаблона и при выполнении покажет пустую форму.

На самом деле для запуска формы совсем необязательно наследоваться от QWidget, предлагаемый код — это лишь пример. Единственный обязательный участок кода тут — qApp::exec();, где qApp — это ссылка на экземпляр класса QApplication, а функция exec() обеспечивает переход в главный цикл обработки событий Qt, тем самым предотвращая завершение работы PHP до тех пор, пока не будет вызвана функция exit() или quit(), либо пока не будут закрыты все видимые формы приложения.

Самый элементарный способ показать форму Qt выглядит примерно так:

Для своего проекта я выбрал шаблон Simple — он очень удобен на этапе разработки в плане того, что для дебага проекта не придётся каждый раз пересобирать приложение.

Нажав на кнопку сборки проекта, PQBuilder запустит компилятор, работа которого продлится от 10 до 30 секунд, затем откроется директория собранного проекта и, если процесс компиляции прошел успешно, мы увидим свежеиспеченный исполняемый файл.

Для релиза приложения нам нужны только 4 файла: exe-файл, pqengine.dll, php5ts.dll и main.php. Остальные файлы в директории проекта — это временные файлы созданные компилятором, их можно смело удалить.

Разработка приложения

Благодаря тому, что все зарегистрированные в движке PQEngine классы реализуют интерфейсы стандартных классов Qt, движок, теоретически, способен проглотить часть примеров с официальной документации Qt, достаточно лишь убрать типы переменных и подписать к ним знак $. Но тем не менее, некоторые функции остаются недоступными, либо отличаются набором и типами входных и выходных значений.

Посмотреть полный список методов того или иного класса можно в заголовочных файлах PQEngine, находятся они в директории с установленным сборщиком:
%путь_установки%PQBuilderpqenginedllpqclasses
Все методы начинающиеся с макроса Q_INVOKABLE доступны для вызова из PHP-кода, а выполняют они ровно то, что написано в официальной документации Qt.

Затем добавим несколько кнопок:

И, наконец, добавим все эти кнопки в созданный компоновщик:

Теперь для того чтобы посмотреть результат совершенно необязательно снова пересобирать проект.
Просто сохраняем исходный код и запускаем исполняемый exe-файл, который был скомпилирован ранее.

И вот что должно было получиться:

Как начать программировать на PHP

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

Сегодня мы познакомимся с простым, но имеющим огромные возможности языком программирования PHP, узнаем, почему многие считают его привлекательнее других языков, как легко начать программировать на PHP и на какую зарплату можно рассчитывать.

Чем отличается frontend от backend

Все сайты, которые мы видим в интернете, состоят из двух частей — frontend и backend. То, что мы видим визуально, — красивые анимации, слайдеры, выпадающие меню и прочее, — это frontend. Дизайнер нарисовал картинку, которую мы превратили в рабочий код с помощью HTML, CSS и JavaScript.

На уровне backend создается сама платформа, которая связывает сайт с внутренними серверными системами, обрабатывает пользовательские запросы, ведет общение с базой данных и в конце выводит результат во frontend.

В создании бэкенда и используется язык PHP.

История создания PHP

Языку PHP уже более20 лет. Он был разработан датчанином Расмусом Лердорфом в 1994 году как простая надстройка, которая показывала количество посещений его персональной странички. Тогда он назвал ее просто — Personal Home Page.

Читать еще:  Php подключение к ms sql

Все эти годы язык эволюционировал. Три года назад вышла седьмая версия. Она намного эффективнее предыдущих версий PHP — 5-й и 6-й:

  • В среднем вдвое быстрее PHP 5.
  • Использует на 50% меньше памяти при обработке запросов.
  • В ней расширено существовавшее объявление параметров в методах.
  • Переработан и убран устаревший код, а это порядка180 тысяч строк.
  • Появилось много синтаксических улучшений.

А значит, на сегодня PHP продолжает быть актуальным и востребованным среди веб-разработчиков.

Отсрочка оплаты на полгода. Вы освоите популярный язык программирования, научитесь писать сайты и программы — и получите востребованную работу.
Подробнее >>>

Почему именно PHP

Часто говорят, что PHP — это язык для новичков, он не предназначен для создания крупных enterprise-проектов. Это не так. Есть немало сервисов, написанных на PHP, создатели которых стали миллиардерами. Например, социальные сети Facebook и «ВКонтакте» написаны на PHP. Такие популярные CMS, как WordPress, Drupal, «1С-Битрикс» также написаны на PHP. И немалая часть сервисов Google тоже написана на этом языке.

PHP имеет очень низкий порог входа. Это язык, который позволит вам буквально через месяц обучения писать небольшие сайты. И в дальнейшем, развивая свои навыки, вы сможете программировать уже высоконагруженные отраслевые решения, в которых нуждаются ведущие мировые компании.

На данный момент PHP — самый востребованный язык программирования. На рынке он занимает долю в 24,6%. Примерно столько же занимает Java со своими 21,1%. А третий язык С# уже значительно отстает — 9,8%.

Рейтинг популярности языков программирования составлен на основе вакансий работодателя, и в ближайшие5 лет такое соотношение, по всей видимости, останется неизменным.

Уровни зарплат на вакансии PHP-разработчиков

По статистике HeadHunter, зарплатный максимум программиста PHP в России составляет250 000 рублей. Если разделить зарплаты по уровням профессионального развития программиста, то цифры такие:

  • Junior Developer — от30 000 руб./мес.

Только входит в профессию, умеет что-то писать и имеет коммерческий опыт программирования порядка 2-3 месяцев.

    M > Может справиться с 90% поставленных задач и имеет опыт программирования от6 месяцев до1 года.

  • Senior Developer — от100 000 руб./мес.

Может решить любую задачу на PHP, спроектировать решение, архитектуру, подобрать код и обучить junior- и middle-программистов выполнять эти задачи.

Полный спектр скиллов веб-разработчика

Давайте рассмотрим, каким комплексом знаний должен овладеть новичок, чтобы заниматься непосредственно backend-разработкой:

  • HTML + CSS — языки разметки страницы. Нужно знать и понимать основы, так как придется работать уже с готовой разметкой.
  • JavaScript — код, выполняемый на стороне клиента (браузера), нужен для того, чтобы задать механику страницы. Необходимо уметь читать и понимать, для чего нужен тот или иной кусок кода.
  • PHP — ядро сайта, скриптовый язык, работающий на уровне сервера и взаимодействующий с серверными структурами, на которых строится веб-проект.
  • SQL — язык структурированных запросов, применяемый для управления базами данных, например, в СУБД MySQL.
  • Linux — да, именно Linux. Windows не предназначена для использования в качестве операционной системы для сервера, хотя PHP может работать как в WIndows, так и в Linux. В рамках обучения не обязательно использовать именно Linux, но важно знать, что в реальных проектах серверы обычно работают под этой ОС.

Литература

«PHP 7. В подлиннике», авторы Дмитрий Котеров, Игорь Симдянов.

«Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5», автор Робин Никсон.

«PHP объекты, шаблоны и методики программирования», автор Мэтт Зандстра.

«Разработка веб-приложений с помощью PHP и MySQL», авторы Люк Веллинг, Лора Томсон.

«Изучаем PHP 7. Руководство по созданию интерактивных сайтов», автор Дэвид Скляр.

Создаем простой скрипт

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

Для начала нам нужно установить компилятор PHP на компьютер. Так как мы выяснили, что PHP — это серверный язык, то существуют специальные готовые сборки веб-серверов, которые включают в себя, помимо PHP, и другие полезные инструменты, например, СУБД MySQL. Одной из таких сборок является Open Server. Для написания кода будем использовать текстовый редактор Sublime Text 3.

Создание EXE приложений на PHP

INTRO

Все мы знаем что PHP предназначен для быстрого создания динамических Web страниц. Во всяком случае именно это написано на официальном сайте разработчиков PHP. Однако почему бы не попробовать найти PHP «немного» иное применение, например, попробовать создать полноценное приложение для Windows? Заинтересовал? Тогда понеслась!

Чёрный квадрат

Приложения делятся на консольные и оконные. Начнём с создания первых, так как это проще. Итак, для начала нужно определиться с тем, что мы будем писать. я предлагаю написать простой MD5 & Base64 Encoder — вещь в хозяйстве нужная и полезная, тем более здесь всё достаточно просто. Для запуска PHP скрипта из командной строки и передачи ему нужных параметров используется следующая конструкция:

Что касается содержания самого скрипта, то количество переданных параметров хранится в переменной $argc, а сами параметры хранятся в массиве $argv. На этом краткий инструктаж по консольным приложениям закончен и пришла пора приступить к активным действиям.

Читать еще:  Ошибка 0xc 000007b

Чтобы не утруждать Вас написанием скрипта, я решил написать его за Вас. Вот что у меня получилось:

Скрипт написан и теперь самое интересное — компиляция в EXE приложение. Для компиляции консольных приложений я использую Roadsend Compiler Studio. Его можно скачать на сайте www.roadsend.com после бесплатной регистрации. Скачали? Теперь открываем Roadsend IDE, создаём новый проект (Project -> New), прописываем необходимые параметры (наш скрипт рекомендую кинуть именно в директорию проекта), жмём «OK» и наконец даём заветное Project -> Build. Теперь направляемся в папку с проектом и если Вы всё правильно сделали — в ней Вы найдёте готовый EXE. Это всё? Да. Всё просто, если знать некоторые нюансы. Единственное что я рекомендовал бы — иногда полезно пошаманить с подключаемыми библиотеками, а так же можно упаковать наш EXE UPX`м, хотя эту тему я затрону чуть ниже. Теперь перейдём к оконным приложениям.

Окошки

Как Вы наверное уже догадались — при создании оконных приложений штатными средствами PHP уже не обойтись, поэтому для начала нужно выбрать инструмент для разработки нашего окошка. Среди всех инструментов больше всего выделяются два — это достаточно раскрученый PHP-GTK (www.gtk.php.net) и менее раскрученный, но не менее функциональный WinBlider (www.winbinder.org). Здесь как раз тот случай, когда более раскрученный и известный оказывается не так уж и хорош (это моё имхо), поэтому для разработки нашей первой форточки на PHP мы будем использовать WinBlinder. Для начала его нужно скачать. Готово? Окей, двигаемся дальше.

Винблиндер имеет свой собственный формат данных — phpw, который Вы можете сразу смело привязывать к вашему любимому редактору кода. По умолчанию при запуске phpw файла открывается содержащийся в нём PHP скрипт и прогоняется через интерпретатор с уже подключеными библиотеками блиндера. Как Вы наверное поняли — учится программировать на этой балалайке Вам придётся самим, однако в это нет ничего сложного, особенно человеку хоть немного знакомому с ООП в PHP. Однако даже незнакомый тоже сможет на нём кодить, так как по сути блиндер (в отличии от PHP-GTK) поддерживает и процедурное программирование. Кроме того WinBlinder весьма неплохо документирован, а инсталл архив уже содержит в себе несколько весьма любопытных примеров (особое внимание прошу обратить на редактор форм). У блиндера есть ещё куча фишек, функций и интересностей, но рамки данной статьи не позволяют мне на них останавливаться. Теперь пожалуй самое подходящее время вспомнить о нашем кодере. Чтобы не перегружать всё кодом я решил написать лишь MD5 Encoder:

Код достаточно прост и думаю посидев с документацией 1-2 часа Вы начнёте разбираться в нём так же, как и я. Ну а теперь кульминация — собираем форточку. Для этого предлагаю создать отдельную директорию и перенести наш скрипт туда. Так же нужно перенести туда папку include из phpcode директории винблиндера. Готово? Теперь компилируем! Эээ. стоп не нужно хвататься за Roadsend IDE. Как? А вот так! Он не поддерживает блиндер, а поддерживает только GTK, причём судя по туманным ответам разработчиков Roadsend на их форуме — поддержку блиндера можно ещё долго ждать. Однако вытрем сопли, и будем искать другие пути, и имя этим путям Bamcompile (www.bambalam.se/bamcompile/). Однако по каким-то причинам версия 1.21 не всегда верно работает и иногда компилирует всё в неработающее приложение, однако версия 1.1 такими глюками не страдает, поэтому рекомендую использовать её. Теперь щедро выделяем для нашего компилятора отдельную папку, заходим в командную строку и гордо командуем:

Если всё сделано правильно, то в директории с компилятором будет лежать свежесколоченое оконное приложение. Всё. Добавлю лишь, что все приложения я ещё рекомендовал бы упаковывать UPX`ом (который идёт сразу с Bamcompile).

Волшебный ларец

Все вышесказанное конечно весьма интересне и познавательно, однако бывают моменты когда нужных инструментов под рукой нет. Что делать тогда? Специально для такого случая есть один весьма любопытный приём получения EXE через шаманство в опциях SFX архива WinRAR. В качестве примера я буду использовать наш первый скрипт для консоли. Для начала помещаем наш скрипт в отдельную папку, туда же копируем php.exe и php*ts.dll. Далее создаём в этой же папке run.bat следующего содержания:

Теперь нам необходимо это добро упаковать, для этого выделяем все файлы, жмём правой кнопкой и выбираем «Add to archive. «.

В появившемся окне выбираем формат архива RAR, выставляем максимальное сжатие и ставим галочку «Create SFX archive».

После этого переходим во складку «Advanced -> SFX Options», там выставляем переключатель на «Create in curent folder» и в «Run after extraction» прописываем «run.bat», а так же во вкладке «Modes» выставляем галочку «Unpack to temporary folder», а так же выставляем переключатели «Hide all» и «Overwrite all files».

По вкусу можете прилипить свою иконку в соответвующей вкладке. Теперь подтверждаем создание архива и на выходе получаем EXE без всяких компиляторов.

OUTRO

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

Ссылка на основную публикацию
Adblock
detector