Pull to refresh

Создание простой MVC-системы на PHP 5

PHP *
Translation

Предисловие


В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).

Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Views 206K
Comments 116

PHP и его встроенные OOP мелочи

Lumber room
Почитал еще в «том году» статью о PHP и OOP под названием PHP и магия ООП, тамошний Девид Блейн описал в краце что есть таки OOP в PHP… Да, автор показал как «надо» использовать правильно функции, но в наше время, когда языки стали не обьектно ориентированными а обьектными, уже не удивишь простой поддержкой OOP. Многие гнобят PHP тем что он корявый, медленный… Ну подумаешь, медленный, подумаешь параметры функций принимаются в разном порядке =) его можно ускорить акселераторами, функции можно скрыть в классах… Самая мошь OOP в PHP — встроенные интерфейсы… Вот о 2-х из них (на примере массива) я и расскажу…
Читать дальше →
Total votes 41: ↑28 and ↓13 +15
Views 988
Comments 23

Вышел HSPL и RSPL для WP7 HTC девайсов

Development for Windows Phone *
Спешу сообщить всем обладателям данных устройств радостную новость — сегодня, первого числа августа, Cotulla вместе с Dark Forces Team выпустил HSPL и RSPL!


Список поддерживаемых устройств
  • Gold (HTC Pro 7,T7575)
  • Mozart (HD3,T8697,T8698,T8699)
  • Mondrian (Surround,T8788)
  • Spark (Trophy,T8686)
  • Schubert (HD7, T9292,T9295,T9296)


Тема на xda-developers.com

Для танкистов

HSPL и RSPL позволяют использовать кастомные ROM'ы (без цифровой подписи). Думаю многие помнят HTC HD2.
Ожидаю появление прошивки, портированной с HTC Desire HD.

P.S. Пока не прошивал, сейчас займусь. При успехе отпишусь. Девайс — HTC HD7.
UPD: Прошился успешно!
Total votes 5: ↑4 and ↓1 +3
Views 626
Comments 4

Массивы или Объекты? Хочу коллекции в пхп!

PHP *
Чего уж скрывать, мне нравятся объекты, и не нравятся ассоциативные массивы. И когда выбираю из базы некий набор данных, хочется получать набор объектов а не массив массивов. Причем не просто набор объектов, а нужный мне набор и именно так как я этого хочу. Раньше происходила выборка из базы в 3 этапа:
1. получить массив данных из бд
2. пройтись по результату
3. на каждой итерации создать объект и сунуть в другой массив
Ну и собственно вернуть данные наружу. Это не то чтобы напрягало сильно, но чувствовал что должен быть способ проще и удобней. И я его нашел — Коллекции.
Читать дальше →
Total votes 33: ↑16 and ↓17 -1
Views 20K
Comments 87

Standard PHP Library (SPL) — Часть 1: Структуры данных

PHP *
Sandbox
Tutorial
Привет, Хабр! В данной статье речь пойдет про Standard PHP Library (SPL). На хабре до сих пор нет толкового мануала об этой библиотеке, которая уже стала частью ядра PHP (с версии 5.3). Данная библиотека содержит набор интерфейсов, классов структур данных, итераторов и функций, с помощью которых можно значительно упростить себе жизнь и повысить качество кода. В данной статье я рассматриваю такую часть библиотеки, как структуры данных. Также я покажу альтернативные решения поставленных задач и сравню скорость выполнения в обоих случаях.

Подробнее
Total votes 66: ↑56 and ↓10 +46
Views 58K
Comments 38

Пишем на php… статично

PHP *
Sandbox
Tutorial
PHP- это язык с динамической неявной слабой типизацией. Динамическая типизация бывает очень полезна во многих случаях, да и вообще сильно упрощает жизнь, ведь ты концентрируешься на значениях и не задумываешься о том какого они типа.

Я как и многие php программисты думал что статическая типизация это «усложнение». Она ограничивает гибкость и вообще: как люди с ней работают? И искренне не понимал, почему многие опытные программисты отдают предпочтение языкам со статической типизацией и строгой проверкой типов.

Дебаты о типизации

Я относился к правой половине людей, которые мало что знают о типах, но при этом искренне верят, что это не удобно. И так было до тех пор пока я не познакомился с одним из строго типизированных языков (c#) вплотную. С тех пор мое отношение к php да и вообще к программированию в целом изменилось.

«Титанов» программирования эта статья вряд ли заинтересует, потому что здесь вы не найдете ничего революционного и нового, а остальным заинтересованным в улучшении своего кода и собственной производительности добро пожаловать под кат.

Читать дальше →
Total votes 90: ↑63 and ↓27 +36
Views 34K
Comments 101

Дайджест интересных новостей и материалов из мира PHP за последние две недели №6 (01.12.2012 — 14.12.2012)

Zfort Group corporate blog Website development *PHP *


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 67: ↑52 and ↓15 +37
Views 20K
Comments 7

Melange — DSL для сетевых протоколов

Abnormal programming *Qt *Functional Programming *
Всем программистам рано или поздно приходится передавать данные. Ни для кого не секрет, что библиотек сериализации в Java существует примерно >9000, а в C++ они вроде и есть, а вроде их и нет. К счастью для большинства, несколько лет назад появился Google Protobuf, который принёс достаточно удобный способ определять структуры данных и быстро завоевал всенародную любовь. Это была фактически первая, доступная широким массам библиотека, позволяющая гонять по сети готовые структуры данных, не связываясь при этом с чем-то вроде XML. На дворе был 2008 год.

Вернёмся немного назад. В 2006 году простой индийский программист (как бы подозрительно это ни звучало!) Анил Мадхавапедди, один из самых известных сейчас в мире OCaml-разработчиков и автор свежевышедшей книги Real World OCaml, защищал в Кембридже кандидатскую диссертацию. Именно о ней я сегодня вам и расскажу.

Анил сразу пошёл дальше, чем Google. Он сразу подумал, для чего люди обычно пересылают по сети какие-то формализованные структуры данных? Чтобы реализовать какой-то протокол. А что такое протокол? Это какой-то конечный автомат. А где мы можем взять хороший пример сложного, хорошо спроектированного и проверенного временем протокола? Да прямо в обычном сетевом стеке! Итак, были взяты набор сетевых структур данных и протоколов: Ethernet frame, IPv4, ICMP, TCP, UDP, SSH, DNS и DHCP и постановка задачи: большая часть этих протоколов (особенно SSH и DNS) реализуются, что называется «руками», а хочется, чтобы не было типичных для C переполнений буфера, все переходы совершались автоматически, это всё можно было верифицировать, и чтобы работало быстро, а не как обычно.

Поскольку никто не будет читать диссертацию, сразу скажу: это более чем удалось. По результатам работы были написаны референсные реализации DNS и SSH-сервера и произведено сравнение с BIND и OpenSSH. OCaml-реализации давали по сравнению с традиционными прирост производительности от незначительного, до почти двухкратного. Кроме того была найдена ошибка в RFC на SSH (рабочая группа была уведомлена и RFC исправлен). О том, что было сделано, и как с этим жить, читайте под катом.
Мне интересно.
Total votes 68: ↑68 and ↓0 +68
Views 16K
Comments 18

Подкаст «Пятиминутка PHP»

Self Promo
Пятиминутка PHP — еженедельный подкаст о новостях из мира PHP, интересных постах в блогах и современных подходах к разработке.

Послушайте первые два выпуска и вы узнаете про:
  • SPL структуры данных (стек, очередь, массив) против классического array и что нам принесёт PHP 7
  • эффективное пересечение массивов, поиск элемента или проверку вхождения в массив
  • проблему с хешами паролей, даже если вы используете новые функции хеширования из PHP 5.5
  • Russia Laravel Meetup и DevConf 2015
  • сравнение производительности Golang, Scala, Elixir, Ruby, Python 3 и PHP в сферических попугаях в вакууме
  • оптимизацию использования памяти и как написать свой сборщик мусора на PHP
  • почему Doctrine ORM не подходит для PHP
  • рендеринг ReactJS шаблонов на сервере с помощью PHP
  • пример использования генераторов (yield)
  • прошлое, настоящее и будущее Code Coverage от автора PHPUnit
  • проблемы Zephir с PHP 7
  • хорошие статьи о PHP 7, которые уже есть на хабре
  • написание и тестирование API на PHP, Rails и Go от Phil Sturgeon
  • TDD — Train Driven Development

Читать дальше →
Total votes 33: ↑21 and ↓12 +9
Views 9.4K
Comments 2

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Опрашиваем клавиши, генерируем ШИМ. Часть вторая

Debugging *C *
Tutorial

Вступление.

В предыдущей статье мы с вами повторили общую структуру таймера и детально рассмотрели ручной способ настройки ШИМ канала с использованием CMSIS. Но многим не нравится «копаться в регистрах» и они предпочитают принципиально другой уровень абстракции, позволяющий, как им кажется, упростить задачу. В этой статье я попытаюсь показать вам все плюсы и минусы данного подхода.
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Views 20K
Comments 15

Переходим с STM32 на российский микроконтроллер К1986ВЕ92QI. Практическое применение: управляем яркостью светодиода

Debugging *C *
Tutorial

Вступление


В двух предыдущих статьях мы генерировали при помощи ШИМ тактовый сигнал нужной нам частоты, получая на светодиоде равный промежутки свечения и его отсутствия. Данная задача имеет место быть на практике (в одной из последующих статей мы с ней точно столкнемся). Но чаще всего ШИМ используют по другому назначению. Одно из самых распространенных — управление яркостью светодиодов или скоростью вращения моторов. Так же при помощи ШИМ можно генерировать звук (о чем будет следующая статья). А в данной статье мне хотелось бы рассказать, как на нашем контроллере можно реализовать управление яркостью светодиода.


Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Views 19K
Comments 0

Язык программирования SPL — пример решения задачи

Programming *
Sandbox
В этой статье я расскажу о том, как можно в языке программирования SPL решить классическую задачу: получить список наиболее часто встречающихся в тексте слов. В качестве образца текста возьмем произведение Шекспира Гамлет.
Читать дальше →
Total votes 22: ↑15 and ↓7 +8
Views 8.9K
Comments 72

Применение национальных языков в программировании на SPL

Programming *
Наверняка каждый программист считает само собой разумеющимся, что основной код программы пишется на английском языке. Можно поспорить о том, обязательно ли так должно быть или это просто анахронизм, но бывает и по-другому.
Читать дальше →
Total votes 20: ↑11 and ↓9 +2
Views 3.7K
Comments 42

Создаем UWP приложение на языке SPL

Programming *
Tutorial
На данный момент существует не так много языков программирования, которые годятся для написания UWP приложений (UWP — Universal Windows Platform, или «Универсальная платформа Windows»), одинаково подходящих для запуска на десктопах, планшетах, смартфонах и других устройствах, работающих под управлением Windows 10.

Теперь язык программирования SPL, который я разрабатываю, также может использоваться для создания UWP приложений благодаря наличию SPL SDK. Расскажу об этом подробнее.
Читать дальше →
Total votes 16: ↑5 and ↓11 -6
Views 1.6K
Comments 10

Ода об истинной мощности или громкие и тихие Ватты

Pult.ru corporate blog Popular science Periphery Physics Sound
У всех, кто когда-либо сталкивался с выбором звуковой аппаратуры возникал вопрос о мощности, а если точнее, о громкости, например, акустической системы или ресивера. Предположу, что многие слышали от “заботливых” продавцов или замечали в рекламных материалах информацию о мощности в 30, 50 или, например, 100 Вт. Когда такое доводится слышать (видеть) мне, я крепко задумываюсь, о какой именно мощности идёт речь. Системы из поднебесной, например, якобы “выдают” заоблачные тысячи Ватт, при этом звучат тише десятиваттных трактов от других производителей.



Из-за ориентирования на значения мощности усилительной техники и акустических систем возникает много неразберихи, которая мешает покупателям приобретать, а продавцам продавать звуковую аппаратуру. Под катом я расскажу о существующих стандартах мощности, а также о том, какие маркетинговые ухищрения помогают некоторым производителям заявить “высокую” формальную мощность, при достаточно скромных реальных характеристиках.
Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Views 114K
Comments 25