Язык
Контакты
GitHub
Поддержка
Регистрация
Войти
Логин: Пароль: Запомнить:
Пользователи
Голосование

    Какую CMS Вы предпочитаете

    AtomX
    Fapos CMS
    Drunya CMS
Последние комментарии
Топ пользователей
Drunya
Репутация: 110
Сообщений: 3527
Сашка_из_Шебекино
Репутация: 87
Сообщений: 1803
boriska
Репутация: 65
Сообщений: 846
ARMI
Репутация: 46
Сообщений: 1858
BAH0
Репутация: 26
Сообщений: 544
Материалов в категории:19
1 2
Перед прочтением спросить разрешение у родителей.
И так, сегодня конец рабочей недели и на меня, в свойственном мне, в это время, состоянии, нашло вдохновение, а почему бы не дать всем понять, что программирование это очень просто. Так как я встречал огромное количество людей, которые хотят, но боятся начинать учить эту бадягу. Конечно, я не говорю, что за неделю ты сможешь научиться писать полноценные программы, которые будут пользоваться нереальным спросом на мировом рынке, но запомни - КОДИНГ ЭТО ПРОСТО ШО ПИЗДЕЦ. А как ты думаешь по чему? Да по-тому, что человеку не свойственно придумать что-то действительно сложное вообще, так как тогда никто бы другой не допер что с этим делать. Так что выкинь из головы все что тебе туда напихали те, кому это выгодно. Байки о том как тяжело компьютерщикам рассказывают компьютерщики, не желающие конкуренции. Самое главное что ты должен сделать перед тем как продолжить читать - это честно признаться самому се
Автор: Drunya Раздел: PHP Добавлено: 8 Авг 2017
Признаться, по правде, я думал, что в PHP 5.4 просто по латают дырки и добавят пару функций. Ну конечно же оптимизируют объектную часть, так как PHP превращается из шаблонизатора в настоящий язык программирования и без ООП ну никак. Но недавно узнал о новой языковой конструкции, которая меня просто поразила.

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

На данный момент, даже в Fapos есть места, где было бы очень правильно использовать данную возможность.

Представляю вам trait.
Сразу пример из документации:
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
<?php trait ezcReflectionReturnInfo {
    function 
getReturnType() { /*1*/ }
    function 
getReturnDescription() { /*2*/ }
}

class 
ezcReflectionMethod extends ReflectionMethod {
    use 
ezcReflectionReturnInfo;
    
/* ... */
}

class 
ezcReflectionFunction extends ReflectionFunction {
    use 
ezcReflectionReturnInfo;?>
Автор: Drunya Раздел: PHP Добавлено: 20 Дек 2011
С тех самых пор, как я начал свой путь в программирование, мне все и вся твердили о том, что в PHP совершенно не стоит думать о потреблении оперативной памяти сервера. Мол PHP сам с этим справляется на Ура. Но так ли оно на практике? Я решил провести серию небольших эксперементов, в основном, для тестирования Fapos CMS, но результаты оказались интересными. По крайней мере, мне так кажется. И я решил опубликовать их, хотя бы как напоминание самому себе. Ну и, за одно, может будет кому то полезно.

Для дальнейшего тестирования нам понадобятся отладочные функции, которые собственно и будут показывать разницу в памяти, между запуском приложения и нужной нам точки в коде.
 1 
 2 
 3 
 4 
 5 
 6 
<?php function memoryUsage($base_memory_usage) {
    
printf("Bytes diff: %s<br />\n"getSimpleFileSize(memory_get_usage() - $base_memory_usage));
}
function 
someBigValue() {
    return 
str_repeat('SOME BIG STRING'1024);
}
?>


А теперь, вот так - сразу, небольшой тест
 1 
 2 
<?php echo 'Start';
memoryUsage($?>
Автор: Drunya Раздел: PHP Добавлено: 18 Дек 2011
Часто бывает так, что нам необходимо иметь что-то типа супер глобальной переменной, которую мы могли бы использовать в любом месте нашего приложения. Не правда ли, удобно? Кто-то использует для этих целей супер глобальные массивы PHP, но это совсем не профессионально и лучше, если об этом никто не узнает.

Сейчас я хочу рассказать об одном из предопределенных интерфейсов PHP - ArrayAccess, который позволяет работать с объектами как с массивами, что очень удобно, а в связке с паттерном Singletone, мы получаем нечто вроде суперглобального массива для хранения чего угодно в нашем приложении.

Что такое интерфейс? Это нечто вроде указания, какие методы должны обязательно присутствовать в классе, который связан с интерфейсом. На пример интерфейс ArrayAccess обязывает нас иметь в своем классе четыре метода
 1 
 2 
 3 
 4 
<?php /* Methods */
abstract public boolean offsetExists mixed $offset )
abstract public 
mixed offsetGet mixed $offset )
abstract public 
void offsetSet mixed $offset mixed $?>
Автор: Drunya Раздел: PHP Добавлено: 17 Дек 2011
В PHP есть очень широкий набор функций для работы со строками. Я решил написать эту заметку как напоминание самому себе и другим она тоже окажется полезной. Здесь я опишу самые часто используемые функции для работы со строками в PHP.


Обрезание строк
 1 
 2 
<?php substr('строка'02);?>
Первый параметр - это строка, которую мы будем резать. Второй параметр - это позиция с которой мы начнем срез, а третий параметр - это количество символов, которое мы отрежим. То есть в данном примере функция вернет нам строку "ст".
Эта функция не корректно работает с юникодом. Для работы с UTF-8 используйте mb_subsr().

 1 
 2 
<?php mb_substr($str7mb_strlen($str));?>
Это пример как отрезать участок, начиная с любой позиции и до самого конца строки.
Функция strlen(), так же имеет аналог для работы с UTF-8 - mb_strlen().


Поиск в строках
 1 
 2 
<?php strpos('строка''р');?>
Функция strpos() возвра
Автор: Drunya Раздел: PHP Добавлено: 15 Июл 2011
Что же такое эти типы данных? Дело в том, что любые данные имеют тип. Вот какие есть типы данных:
boolean - логические true и false
integer - целое число(сокращенно int)
string - строка
float - число с плавающей точкой
array - массив
object - объект
resourse - ссылка на ресурс(например после выполнения некоторых функций)


Дело в том, что в PHP работа с типами данных имеет свои особенности. Например этот код хорошо это иллюстрирует
 1 
 2 
 3 
 4 
 5 
 6 
<?php $a 1;
$b 2;
$c true;
if (
$a == $c) echo 'да';
if (
$b == $c) echo 'да';
if (
$a == $b) echo 'нет';?>

Хотя, казалось бы, что если первые два сравнения истины то и последнее тоже должно быть истинно. Дело в том, что мы сравнивали эти данные через 2 "=", а это означает сравнение без учета типов. В таком случае, любая строка истина, как и любое число больше нуля.

Для жесткого сравнения с учетом типов надо использовать 3 "=". Из-за такой не жесткой типизации в PHP бывают косяки в
Автор: Drunya Раздел: PHP Добавлено: 9 Июн 2011
Конечно может возникнуть вопрос, а зачем чайнику функции. У меня например чайник тоже без функций, даже без свистка;)

Ну ладно шутки в сторону.

Сначала я расскажу как создавать и использовать функции, а об их применении поговорим чуть поже. Функция это что-то вроде блока кода, который сам по себе не на что не влияет и не мешает выполнению другого кода. Код в функции бездействует пока вы к нему не обратитесь. Функция может так же возвращать данные. Приведу пару примеров.
 1 
 2 
 3 
<?php function test($var1$var2) {
    return 
$var1 $var2;
}
?>
Вот пример очень простой функции. Здесь имя test - это вымешленное имя функции, по которому мы будем к ней обращаться. $var1 и $var2 - тоже вымышленные имена, они только говорят о том, что функция будет принимать два параметра. Эта функция возвращает сумму этих двух параметров. Вот пример как можно ее использовать
 1 
 2 
<?php $summ test(23);?>
Теперь в $summ у нас будет сумма двух чисел что мы передали. А можно и так
 1 
 2 
<?php $a 2;?>
Автор: Drunya Раздел: PHP Добавлено: 9 Фев 2011
Конечно, многие могут сказать что красивый код это бесполезная затея. Главное что бы работал как надо. Но я позволю себе не согласиться с этим заключением. Возможно некоторые настроены скептически, по отношению к этой затее, по тому что думают - "Зачем коду программы красота". Но видите ли, кодстайл придуман не для красоты, а для упрощения восприятия кода не вооруженным взглядом. Сейчас объясню, что я имею виду. Любая программа, независимо от ее предназначения, будет отлаживаться или модифицироваться. Возможно вами, а возможно и кем то другим. И, если код не имет должного вида, сделать это будет очень сложно. Например,в больших программах это сложно делать даже если соблюдены все правила, а если оне не соблюдены, то отладка или модификация превращается в настоящий ад для программиста. Попробую показать пару маленьких примеров.


 1 
 2 
<?php for($i=0;$i<3;$i++)if($i<1)echo'bla';echo'bla';?>
 1 
 2 
<?php $a=33*8-23/2*7+78;$b++;$a=$b-25/3;$b=$a-3*4/2+45;?>

Вот. Парочка примеров, в
Автор: Drunya Раздел: PHP Добавлено: 28 Янв 2011
По чему именно в PHP, ведь регулярные выражения везде одинаковы? По тому, что я буду приводить конкретные примеры PHP функций и говорить обих особенностях. Конкретно будем рассматривать функцию preg_match(). Она может принимать на вход 2 обязательных параметра и один дополнительный. Первый параметр - это сама регулярка, второй - это строка, в которой осуществляется поиск, а третий необязательный параметр служит для записи в него найденых совпадений.

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

Пример
Code:
'#регулярка#'

Как видно в примере, я использовал решетку, но это может быть и любой другой символ, не являющийся буквенно-циферным. Но я бы посоветовал всегда использовать решетку и не думать обэтом:)


Регулярные выражения м
Автор: Drunya Раздел: PHP Добавлено: 27 Янв 2011
И так для начала, немного терминологии и азов, для того что бы дальше было проще. Класс - это нечто что может содержать в себе пользовательские функции(методы) и переменные(свойства). Повторим, функции в классе - это методы, а переменные - это свойства.

Пример:
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
<?php class MyClass {
    
//свойства класса
    
public $var1 '1';
    public 
$var2 '2';
    
    
//методы класса
    
public function func1() {
    
    }
    
    public function 
func2() {
    
    }
}
?>

Ключевое слово public перед методами и свойствами говорит о том что данный метод или свойство доступно из любого места. То есть оно открыто для использования, без каких либо ограничений. Вот список подобных ключевых слов:
public - открыто для использования везде
private - можно использовать только внутри данного класса
protected - можно использовать только внутри данного класса и его наследников и родителей.

Обращение к свойствам и методам классов можно делать
Автор: Drunya Раздел: PHP Добавлено: 18 Янв 2011
1 2
Сейчас online: 104. Зарегистрированных: 0. Гостей: 104.
-->