61

Re: PHP - всі за і проти

Я також пожаліюся - інтерфейс до mysql не є зворотньо сумісним, нащо вони город городили, щоб префікс mysql_ замінити на mysqli_ (ООП інтерфейс не розглядаємо). Це унеможливлює використання тисячі рядків написаного коду.

62

Re: PHP - всі за і проти

Це унеможливлює використання тисячі рядків написаного коду.

Ви трошки не вірно написали. Має бути так:
Це унеможливлює використання тисячі рядків написаного коду на останніх версіях PHP.
Не варто оновлювати код якщо вам все рівно на безпеку.
Як на мене тут зробили все вірно. Є сотні тисяч юзерів які сидять на старій версії PHP і у них нема проблем поки їх не похакають.
Якщо у вас 5.3 і ви не бажаєте оновлюватись відповідайте самі за безпеку свою а якщо хочете що б не було багів - переписуйте код і юзайте останній софт;)
У канторі де я працюю я займайвся якраз переписуванням старого функціоналу який юзав mysql_ на pdo
Так, пішло чимало часу, але 2-3 тижні роботи і все буде чітко і набагато зручніше і набагато безпечніше) + як завжди закривались дірки у коді)

63

Re: PHP - всі за і проти

Я особливо не придивлявся, тому поясніть мені різницю між mysql і mysqli інтерфейсами. ПДО поки облишимо.

64

Re: PHP - всі за і проти

А у PHP він у 99% випадків натрапляє на якесь w3schools, де його навчать mysql_real_escape_string, PHP коду посеред HTML, та іншим пустощам.

Шаблонізатор же.

65

Re: PHP - всі за і проти

Проти.

extract — Import variables into the current symbol table from an array

Було б дуже зручно (і більш осмислено чи що) якби можна було б  імпортувати змінні з масиву функцією extract і відразу ж передати їх функції compact (funct(compact(array('a'=>12)))). Як приклад наведено типову ситуацію передачі даних в представлення в типовому PHP фреймворку. Якби це було так, то в наведеному нижче прикладі не довелося б створювати ще один масив який містив би потрібні дані і передавати його в представлення і там писати щось на кшталт $масивЗОсмисленоюНазвоюЗякоїСтаєЗрозумілоЙогоПризначення['назваЗмінної']['вкладенийМасив']['іщеОднаЗмінна'] або імпортувати змінні а потім по одній передавати куди потрібно.

<?php
class CommonPHPController extends PHPMVCFrameworkClass_ {
    private function returnArray(){
        $url = '';
        $index = 0;
        if ($_GET['var'] == 'abc'){
            $url = 'a';
            $index = 12;
        } else {
            $url = 'b';
            $index = 24;
        }
        return array('url' => $url, 'index' => $index);
    }
    function printCompactedVariables(){
        /*…*/
        # ніфіга не вийде
        processMVCView('name', compact('var1', 'var2', extract($this->returnArray())));
    }
}

Функція extract повертає

the number of variables successfully imported into the symbol table.

66

Re: PHP - всі за і проти

То напишіть свій аналог extract,щоб працював як вам потрібно.

67

Re: PHP - всі за і проти

Низький поріг входження, нестрога типізація, нестрогість взагалі... Це як дитині дозволяти робити щось, чого вона не розуміє ще.

Дуже не однозначним є твердження, що краще "бити дитину за ранні прорахунки"...

68

Re: PHP - всі за і проти

Обганяє по продуктивності Python, Perl i Ruby
http://habrahabr.ru/post/66562/

Прихований текст

Вкинув, як порадили :D

69

Re: PHP - всі за і проти

VTrim написав:

http://habrahabr.ru/post/66562/

Так стаття за 2009 рік! Невже у світі програмування нічого не змінилось з того часу(це я про заголовок статті)?

70

Re: PHP - всі за і проти

VTrim написав:

Обганяє по продуктивності Python, Perl i Ruby
http://habrahabr.ru/post/66562/

Прихований текст

Вкинув, як порадили :D

Прихований текст

Не зараховую. Тут треба оригінальне досліження, як в статті, бажано з неочікуваними результатами. Якщо ви не зробите, то я постараюсь завтра вкинути.

71

Re: PHP - всі за і проти

0xDADA11C7 написав:

Я особливо не придивлявся, тому поясніть мені різницю між mysql і mysqli інтерфейсами. ПДО поки облишимо.

mysqli - покращена версія mysql, яка краще працює з новими версіями мускула.
є ООП, підтримка транзакцій і ще деякі можливості.
Тобто рахується що це новіша версія драйвера для мускула, де використовуються якісь нові можливості і все таке. Я по привичці використовую mysql і PHP 5.3., все ок.

mysql зараз deprecated, це значить шо в наступних версіях PHP його можуть вирізати взагалі. На відміну від Microsoft, котра підтримує технології 95 вінди, навіть небезпечні (апі, в яких може бути буфер оверфлоу), Опенсорс діє тоталітарно. Випустили новий модуль - їм і користуйся, а старий виріжем зовсім.

Подякували: 0xDADA11C71

72

Re: PHP - всі за і проти

Стаття ге вже в тому плані, що підрахунок починається з моменту запуска компілера, а не з моменту виконання програми. Таким чином, час на ініціалізацію створення віртуальної машини чи JIT-компіляції входить до складу часу виконання програми. Сподіваюсь в спільноті ktretyak`а не буде подібного срала-мазала.

Подякували: ktretyak1

73

Re: PHP - всі за і проти

PHP не може бути швидшим за Perl/Python. PHP завжди загружає в память різні модулі (див. phpinfo()), в той час як в Perl/Python вони в більшості підключаются вручну (use Socket; etc..);

74

Re: PHP - всі за і проти

Кому не лінь, перевірте власноруч.
Код,результати,скріни - кладіть сюди.

75

Re: PHP - всі за і проти

І продовження 68 поста про PHP i Python
http://habrahabr.ru/post/124346/

76 Востаннє редагувалося ktretyak (08.04.2015 15:57:06)

Re: PHP - всі за і проти

0xDADA11C7 написав:

Стаття ге вже в тому плані, що підрахунок починається з моменту запуска компілера, а не з моменту виконання програми. Таким чином, час на ініціалізацію створення віртуальної машини чи JIT-компіляції входить до складу часу виконання програми. Сподіваюсь в спільноті ktretyak`а не буде подібного срала-мазала.

Та думаю буде і на моєму запланованому ресурсі щось не зовсім компетентне, причому в більшій мірі, бо не буде обмеження на реєстрацію та на написання публікацій.

Я сподіваюсь зробити просто ефективні фільтри, які дозволять бачити бажане.

Подякували: 0xDADA11C71

77

Re: PHP - всі за і проти

    public function agrExists($fileName) {
        $uploadPath = Yii::app()->params['agreementsUploadDir'];
        $r = glob($uploadPath . $fileName . '*', GLOB_NOSORT);
        if (empty($r)){
            return FALSE;
        } else {
            return $r;
        }
    }

В документації по функції glob написано що

Returns an array containing the matched files/directories, an empty array if no file matched or FALSE on error.

ДАлі:

                if ($files = $this->agrExists($uid . '_' . $name) != FALSE){
                    foreach($files as $fileNames){…}}

Я очікував що, якщо фіункція поверне не FALSE, то в змінній $files буде масив, але ні. Там буде TRUE. Треба писати отак:

$files = $this->agrExists($uid . '_' . $name)
                if ($files != FALSE){…}

В такому випадку, якщо функція поверне масив то в змінній $files таки буде масив. Я чогось не розумію.

78

Re: PHP - всі за і проти

Треба закріпити це обговорення.

79

Re: PHP - всі за і проти

@Invader можливо створіть окрему тему там можна буде розібратись з проблемою і написати тут уже результа ;)

80

Re: PHP - всі за і проти

Прихований текст

А що в ній розбиратися?