Cтандарты php кодирования Zend Framework (ну, вы поняли) в Гомеле =)

Популярные рубрики

установка программ установка Windows ремонт мониторов repair ремонт разработка сайтов ремонт принтеров мобильное установка Виндовс сайт домен конкуренция stash simonscat.com ошибка ajax абонентское обслуживание создание сайтов Гомель мультфильмы сайтов sql заказать сайт компьютерная помощь принтер смех сквозь слезы защита ноутбук zend разработка сайта zf Metro orm гомель установка восстановление информации разработка разлочка recovery php doctrine консультация iPad выбор восстановление данных конкатенация seo сайты сервис CMS мобильных продвижение приватность Компьютерная помощь джеилбрейк rebase разработчик Техническое обслуживание яндекс лечение вирусов компютеры переустановка настройка в Гомеле прошивка ремонт винчестеров проблемы nForce формы ремонт компьютеров yandex кошки перегрев реламная площадка разработчики software installation iOS восстановление репозиторий google гандаль iphone индексация приложение Windows 10 Ветка gomel simonscat серия IT ssl framework Восстановление информации iPod создание сайта юмор ветви разработчикам сайтов перепрошивка лазерных мобильные телефоны интернет hp заправка принтеров gandal.by курсы лоты iTunes git ОС предложение iPhone гит iMac Classic Shell сломался Разработка сайтов в Гомеле обслуживание компьютеров Android оборудование переменные виджет Windows 7 скидки аякс рекомендация Стив Джобс win компьютеры networks Беларусь Добруш лицензия кризис код массивы поисковые системы заправка картриджей nVidia ipad артефакты организации просто кошмар windows Apple тест обслуживание стандарт классы беларусь антивирусы как делать нельзя html объявления
Июня
2010 года
25

Cтандарты php кодирования Zend Framework (ну, вы поняли) в Гомеле =)

Как обычно, продолжаем заливать полезную копипасту.На этот раз, обратимся к стандартам кодирования ZF.

Обрамление PHP-кода

PHP-код должен всегда обрамлятся полными PHP-тегами:


?>

Короткие теги не допустимы.

Строки

Строковые литералы

Когда строка является литеральной (не содержит подстановок переменных), для ее обрамления должны использоваться апострофы или "одинарные кавычки":

$a = 'Example String';

Строковые литералы, содержащие апострофы

Когда строка литералов сама содержит апострофы, разрешается для обрамления строки использовать "двойные кавычки". Это особенно актуально для SQL-запросов:

$sql = "SELECT `id`, `name` from `people` WHERE `name`='Fred' OR `name`='Susan'";
Синтаксис выше является более предпочтительным, чем экранирование апострофов.

Подстановка переменных

Подстановка переменных разрешается с использованием двух нижеприведенных форм:

$greeting = "Hello $name, welcome back!";

$greeting = "Hello {$name}, welcome back!";

Для надежности, эта форма не допустима:

$greeting = "Hello ${name}, welcome back!";

Конкатенация строк

Строки должны объединятся с помощью оператора ".". Пробел должен всегда добавлятся до и после оператора "." для улучшения читабельности:

$company = 'Zend' . 'Technologies';

Когда производится конкатенация строк с помощью оператора ".", разрешается разрывать выражение на несколько строк для улучшения читабельности. В этом случае, каждая следующая строка должна быть дополнена пробелами так, чтобы оператор "." был выровнен под оператором "=":

$sql = "SELECT `id`, `name` FROM `people` "
. "WHERE `name` = 'Susan' "
. "ORDER BY `name` ASC ";

Массивы

Массивы с числовыми индексами

Отрицательные числа в качестве индексов запрещены.

Хотя индекс массива может начинаться с отрицательного числа, но это не приветствуется и рекомендуется, чтобы все массивы начинали индексирование с 0.

Когда определяется индексированный массив с помощью конструкции array, завершающий пробел должен быть добавлен после каждой запятой для улучшения читабельности:

$sampleArray = array(1, 2, 3, 'Zend', 'Studio');

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

$sampleArray = array(1, 2, 3, 'Zend', 'Studio',
$a, $b, $c,
56.44, $d, 500);

Ассоциативные массивы

Когда определяется ассоциативный массив с помощью конструкции "array", приветствуется разделение выражения на несколько строк. В этом случае, каждая следующая строка должна быть дополнена с помощью пробелов так, чтобы и ключи и значения были выровнены:

$sampleArray = array('firstKey'  => 'firstValue',
'secondKey' => 'secondValue');

Классы

Определение класса

Классы должны определяться по следующей схеме.

Фигурная скобка всегда пишется на следующей строке под именем класса.

Каждый класс должен иметь блок документации (doc-блок) в соответствии со стандартом PHPDocumentor.

Код внутри класса должен иметь отступ в четыре пробела.

Только один класс разрешен внутри одного PHP-файла.

Размещение дополнительно кода в файле с классом разрешено, но не приветствуется. В таких файлах, две пустые строки должны разделять класс и дополнительный PHP-код.

Это пример допустимого определения класса:

/**
* Doc-блок здесь
*/
class SampleClass
{
// содержимое класса должно быть
// с отступом в четыре пробела
}

Переменные-члены классов

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

Любые переменные, определенные в классе, должны быть определены в начале класса, до определения любого метода.

Ключевое слово var не разрешено. Члены класса должны всегда определять их область видимости, используя ключевое слово private, protected или public. Доступ к переменным-членам класса напрямую используя префикс public разрешено, но не приветствуется в пользу методов доступа (set/get).

Функции и методы

Определение функций и методов

Функции должны определяться по следующей схеме.

Функции внутри классов должны всегда определять свою область видимости с помощью одного из префиксов private, protected или public.

Как и у классов, фигурная скобка всегда пишется на следующей строке под именем функции. Пробелы между именем функции и круглой скобкой для аргументов отсутствуют.

Функции в глобальной области видимости крайне не приветствуются.

Это пример допустимого определения функции:

/**
* Doc-блок здесь
*/
class Foo
{
/**
* Doc-блок здесь
*/
public function bar()
{
// содержимое класса должно быть
// с отступом в четыре пробела
}
}

ЗАМЕЧАНИЕ: Передача по ссылке допустима только в определениях функций:

/**
* Doc-блок здесь
*/
class Foo
{
/**
* Doc-блок здесь
*/
public function bar(&$baz)
{}
}

Передача по ссылке во время вызова запрещена.

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

/**
* Doc-блок здесь
*/
class Foo
{
/**
* ПЛОХО
*/
public function bar()
{
return($this->bar);
}

/**
* ХОРОШО
*/
public function bar()
{
return $this->bar;
}
}

Использование функций и методов

Аргументы функции разделяются одним завершающим пробелом после каждой запятой. Это пример допустимого вызова функции для функции, которая принимает три аргумента:

threeArguments(1, 2, 3);

Передача по ссылке во время вызова запрещена. Смотрите секцию определения функций для правильного способа передачи аргументов функции по ссылке.

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

threeArguments(array(1, 2, 3), 2, 3);

threeArguments(array(1, 2, 3, 'Zend', 'Studio',
$a, $b, $c,
56.44, $d, 500), 2, 3);

Управляющие структуры

If / Else / Elseif

Управляющие структуры, основанные на конструкциях if и elseif, должны иметь один пробел до открывающей круглой скобки условия, и один пробел после закрывающей круглой скобки.

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

Открывающаяся фигурная скобка пишется на той же строке, что и условие. Закрывающаяся фигурная скобка пишется на отдельной строке. Все содержимое между скобками пишется с отступом в четыре пробела.

if ($a != 2) {
$a = 2;
}

Для выражения "if", включая "elseif" или "else", форматирование должно быть таким, как в следующем примере:

if ($a != 2) {
$a = 2;
} else {
$a = 7;
}


if ($a != 2) {
$a = 2;
} elseif ($a == 3) {
$a = 4;
} else {
$a = 7;
}
PHP допускает написание таких выражений без фигурных скобок при некоторых условиях. Стандарт кодирования не делает различий - для всех "if", "elseif" или "else" выражений необходимо использовать фигурные скобки.

Использование "elseif" конструкции допускается, но крайне не приветствуется в пользу "else if" комбинации.

Switch

Управляющие структуры написанные с использованием "switch" конструкции должны иметь один пробел до открывающей круглой скобки условного выражения, и также один пробел после закрывающей круглой скобки.

Все содержимое между фигурными скобками пишется с отступом в четыре пробела. Содержимое каждого "case" выражения должно писаться с отступом в дополнительные четыре пробела.

switch ($numPeople) {
case 1:
break;

case 2:
break;

default:
break;
}

Ключевое слово default никогда не должно опускаться в выражении switch.

ЗАМЕЧАНИЕ: Иногда полезно писать case выражения, которые передают управление следующему case выражению, опуская break или return. Для того, чтобы отличать такие случаи от ошибок, каждое case выражение, где опущен break или return, должно содержать комментарий "// break intentionally omitted".

Встроенная документация

Формат документации

Все блоки документации ("doc-блоки") должны быть совместимы с форматом phpDocumentor. Описание формата phpDocumentor вне рамок данного докумета. Для дополнительно информации смотрите: » http://phpdoc.org/

Все файлы с исходными кодами, написанные для Zend Framework'а, или которые оперируют с фреймворком, должны содержать "файловые" doc-блоки в начале каждого файла и "классовый" doc-блок непосредственно перед каждым классом. Ниже даны примеры таких doc-блоков.

Файлы

Каждый файл, содержащий PHP-код должен иметь заголовочный блок в начале файла, содержащий как минимум следующие phpDocumentor-теги:

/**
* Краткое описание файла
*
* Длинное описание файла (если есть)...
*
* LICENSE: Some license information
*
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://www.zend.com/license/3_0.txt PHP License 3.0
* @version $Id:$
* @link http://dev.zend.com/package/PackageName
* @since File available since Release 1.2.0
*/

Классы

Каждый класс должен иметь doc-блок, содержащий как минимум следующие phpDocumentor-теги:

/**
* Краткое описание класса
*
* Длинное описание класса (если есть)...
*
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://www.zend.com/license/3_0.txt PHP License 3.0
* @version Release: @package_version@
* @link http://dev.zend.com/package/PackageName
* @since Class available since Release 1.2.0
* @deprecated Class deprecated in Release 2.0.0
*/

Функции

Каждая функция, включая методы объектов, должна иметь doc-блок, содержащий как минимум:

  • Описание функции

  • Все аргументы

  • Все возможные возвращаемые значения

Нет надобности использовать тег "@access", потому что область видимости уже известна из ключевых слов "public", "private" или "protected". используемых при определении функции.

Если функция/метод может выбрасывать исключение, используйте тег @throws:

@throws exceptionclass [описание]

Июня
2010 года
15

Git в Гомеле =)

Git («гит») — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.

Поскольку волей судьбы приходится переходить с cvs/svn на гит, добавим немного крайне полезной копипасты, по поводу этого самого git'а. Надоело держать 10 открытых страниц, соберем все полезное для себя в этой записе.

Git (Гит базовые команды)

# создание репозитория
git init

# добавление всех изменений в репозиторий (в т.ч. новых файлов)
git add .

# закрепление всех изменений в репозитории
# (включая изменения, не добавленные командой git add, за исключением новых файлов)
# будет вызван визуальный редактор комментария к коммиту
git commit -a

# закрепление всех изменений в репозитории
# комментарий к коммиту задается в командной строке
git commit -a -m "Сообщение"

# отменить последний коммит, вернув все изменения в проект
# (что-то вроде кнопки undo для последнего коммита)
git reset --soft HEAD^

# текущее состояние рабочего дерева каталогов
git status

# просмотреть внесенные Вами изменения с момента последнего коммита
git diff

# добавить ссылку на удаленный SSH репозиторий
git remote add origin ssh://user@myserver.com/var/git/myapp.git

# удалить ссылку удаленный репозиторий
git remote rm origin

# получение последней версии из источника (удаленного репозитория) и слияние ее с текущей
git pull origin master

# отправка Вашей версии в источник (удаленный репозиторий)
git push origin master

# создание ветви (бранча)
git branch branch_name

# переключение ветви (бранча)
git checkout branch_name

# слияние текущей ветви и с указанной
git merge branch_name

# удаление ветви (бранча)
# ветвь должна быть полностью слита с HEAD
git branch -d branch_name

# безусловное удаление ветви (бранча)
git branch -D branch_name

 

Git stash

git stash
git pull
git stash apply
git add -u
git commit
git push
git stash drop
  • git stash – добавить текущие незакоммиченные изменения в стек изменений и сбросить текущую рабочую копию до HEAD’а репозитория;
  • git stash list – показать все изменения в стеке;
  • git stash show – показать последнее измененеие в стеке (патч);
  • git stash apply – применить последнее изменение из стека к текущей рабочей копии;
  • git stash drop – удалить последнее изменение в стеке;
  • git stash pop – применить последнее изменение из стека к текущей рабочей копии и удалить его из стека;
  • git stash clear – очистить стек изменений.
 
 

Git rebase

git checkout feature1
git rebase master
git checkout master
git merge feature1

 

 

 

 

Июня
2010 года
14

Яндекс-Вебмастер заполнение "Адреса и организации"

На днях, при заполнении страницы "Адреса и организации", что находится в середине опций яндекс-вебмастер, столкнулись с неприятной ошибкой. На самой последней странице нажатие на кнопку "добавить рубрику" ничего не происходит. Быстрое гугление сопутствующей информации установило наличие данной проблемы в FF и Хроме. Пришлось перезаполнить информацию в ИЕ.Там действително никаких проблем не возникло. Мелочь, конечно, но неприятно.Разработчики яндекса в курсе проблемы и обещают пофиксить в скором времени. 
Июня
2010 года
09

Обслуживание компьютеров в Гомеле

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

Мы предлагаем Вам решение данной проблемы! Проще и выгоднее передать обслуживания собственных компьютеров в руки сторонней организации, оказывающей подобные IT-услуги на профессиональном уровне. Заказывая услугу абонентского обслуживания в профессиональной компании, вы избавляете себя от лишних затрат по содержанию собственного специалиста, позволяете сотрудникам заниматься в рабочее время своими непосредственными обязанностями, а значит повышаете их отдачу. И в тоже время получаете профессиональную поддержку и оперативное решение собственных проблем в ИТ-сфере.

 

При обслуживании компьютеров:

• Создаем правила работы ИТ-инфраструктуры, обеспечивающие максимальную стабильность.
• При наличии необходимого оборудования и задач, инсталлируем необходимые для работы компании серверы - для доступа в сеть Интернет, файловые, контроллеры домена, почтовый, хостинг, сервер рассылок, терминальный и пр.
• Решаем вопросы ремонта оборудования.
• Помогаем решить вопросы лицензирования программного обеспечения, если в этом есть необходимость.
• Обновляем программное и аппаратное обеспечение.
• Окажем содействие в подборе поставщиков других ИТ-услуг, которые мы не оказываем.
• С интернет-рекламой - в условиях экономического кризиса вопрос привлечения клиентов стал ещё более актуальным.
• Также перечень задач, включаемых в понятие "обслуживание компьютеров" может быть расширен. Это зависит от того, что компания-заказчик услуги желает получить при обслуживании компьютеров.
• Разработка для вас индивидуального тарифный план.


Преимущества работы с нами по обслуживанию Ваших компьютеров:

• Наши сотрудники имеют более 10 лет опыта работы в техническом обслуживании компьютеров.

• Мы – многопрофильный коллектив, и Вы можете рассчитывать на нашу помощь не только в технической поддержке IT-инфраструктуры (см. технические решения, интернет-реклама, работы по 1С, лицензирование программного обеспечения и пр.)

• Для тех задач, с которыми мы не работаем – найдем подходящие для вас компании.

Звоните!

 

Июня
2010 года
08

Google SSL

Google запустиил в бета-версии защищенную версию поиска, доступную по адресу httpS://www.google.com.

Отныне у  пользователей появилась возможность использовать сервис,  в котором применяется криптографический протокол SSL (Secured Socket Layer), и уверенность, что посторонним лицам не удастся проследить, какую именно информацию они искали во Всемирной паутине.

Пользоваться данным сервисом очень просто: на стартовой странице поисковика в адресной строке браузера достаточно после стандартного «http» добавить «s», после чего обмен данными между Google и юзерами будет осуществляться по зашифрованному каналу.

Данная функция работает пока  только с «общим» поиском.  Для картинок, видео, карт и т. д. аналогичная возможноть еще не реализована.

Для повышения анонимности авторы сервиса рекомендую совмещать Encrypted Google Search с режимом приватного просмотра.

В свете ухудшения ситуации с приватностью для белоруских пользователей интернет данный сервис может стать неплохим подспорьем.

Июня
2010 года
04

Компьютерная помощь в Гомеле

Если у вас перестал загружаться Windows, или постоянно вылетают "синие экраны", или одолели вирусы, или еще какие-то компьютерные проблемы, значит... мы идем к Вам! :)

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

Что мы сможем (скорая помощь компьютеру):

Установка ОC

Профессиональную и качественную установку и настройку операционных систем Windows любых версий: 95, 98, ME, 2000, XP, Vista, +7

Настройка ПО

- Установка программ для работы с видео, графикой, картинками, почтой;
- Настройка офисных приложений (MS Office (Word, Excel, Access, Outlook, PowerPoint, Publisher, InfoPath));
- Настройка программного обеспечения по индивидуальным требованиям заказчика;
- Техническая поддержка и модернизация системы в процессе эксплуатации;
- Настройка продуктов семейства Windows, Linux и Unix;

Антивирусная защита

- Установка антивирусных программ
- Поиск и устранение вирусов

Поможем с приобретением лицензионных программ

Лицензионное и свободно распространяемое программное обеспечение Microsoft Windows Vista/XP/2003/2000/98SE, Office 2003/2007, Works 8.0 1C Предприятие, Бухгалтерия, Зарплата-Кадры, Торговля-Склад итд.Adobe Photoshop, CorelDraw, AutoCAD, Kaspersky antivirus, Dr.Web, Agnitum Outpost, Panda 

Интернет

- Подключение к интернету + бесплатная консультация по азам работы в сети
- Установка и настройка браузеров по вашему выбору

Ремонт компьютеров
- Диагностика неисправности
- Оперативный ремонт
- Консультация по апгрейду комплектующих не подлежащих ремонту
- Консультация при покупке новых комплектующих

Звоните, приедем, поможем
+8 (029) 393-7422
+8 (025) 972-6393

Июня
2010 года
03

Разработка/создание веб сайтов в Гомеле

В рамках борьбы ajax vs поисковые боты придется постить сюда рерайт контента сайта, а иначе о нас так никто никогда и не узнает :)

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

Да, собственный профессионально созданный сайт — это солидное достоинство и преимущество перед конкурентами. Это решение для компаний, желающих использовать новые технологии в своем бизнесе. Жаль, что таких компаний в Гомеле немного, а хотелось бы больше.

Так вот, вам, наши дорогие потенциальные заказчики мы будем рады предложить недорогие и универсальные веб-сайты на базе CMS собственной разработки. Она идеально подходит для малого бизнеса, проста и надежна. В базовой поставке представляются основные модули необходимые для полноценной работы: "каталог", "новости", "обратная связь" + система администрирования. Возможно написание эксклюзивных модулей под заказ.

От вас требуется твердо знать, чего вы хотите, иметь примеры сайтов в стиле "хотим как тут". Иметь представление какие сайты бывают, желание участвовать и обсуждать, понимать, что профессионалам на самом деле виднее нужно "тут красненького добавить" или нет. :)

Звоните, договоримся!

Писать: infoit-src.com

Звонить:
+8 (029) 393-7422
+8 (025) 972-6393

Страница: 012345