Aulas em: http://cursophp7.ultimatephp.com.br
by Beraldo
Aulas em: http://cursophp7.ultimatephp.com.br
by Beraldo
CentOS 7 and compatible | |
Create a new repo file /etc/yum.repos.d/php7-nightly.repo and insert following lines: | |
[zend-php7] | |
name = PHP7 nightly by Zend Technologies | |
baseurl = http://repos.zend.com/zend-server/early-access/php7/repos/centos/ | |
gpgcheck=0 | |
run: | |
yum install php7-nightly | |
To install PHP 7 Beta 1 run: | |
yum install php7-beta1 | |
Apache | |
To use with Apache, first install httpd, then copy the required module: | |
cp /usr/local/php7/libphp7.so /etc/httpd/modules/ | |
Add the following lines to /etc/httpd/conf/httpd.conf: | |
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so | |
<FilesMatch \.php$> | |
SetHandler application/x-httpd-php | |
</FilesMatch> | |
Ubuntu 14.04, Debian 8 and compatible | |
Add Zends PHP7 early access repo: | |
echo "deb http://repos.zend.com/zend-server/early-access/php7/repos ubuntu/" >> /etc/apt/sources.list | |
To install PHP7 nighly build: | |
apt-get update && apt-get install php7-nightly | |
To install PHP 7 Beta 1 run the following: | |
apt-get update && apt-get install php7-beta1 | |
PHP7 will be installed to /usr/local/php7 | |
Apache | |
To use with apache, first install apache2, then copy the required modules and libs: | |
cp /usr/local/php7/libphp7.so /usr/lib/apache2/modules/ | |
cp /usr/local/php7/php7.load /etc/apache2/mods-available/ | |
Then, edit /etc/apache2/apache2.conf , and add these lines: | |
<FilesMatch \.php$> | |
SetHandler application/x-httpd-php | |
</FilesMatch> | |
After that run these commands to switch to mpm_prefork and enable the PHP mpm module: | |
a2dismod mpm_event | |
a2enmod mpm_prefork | |
a2enmod php7 | |
fonte: http://php7.zend.com/repo.php |
Lembra do nosso bom e velho amigo MySQL? É um dos SGBDs mais utilizados com PHP. | |
Porém, como há tempos eu venho dizendo, as funções mysql_* (como mysql_connect ou mysql_query) deveriam ser evitadas. Desde o PHP 5.5 elas eram consideradas obsoletas. | |
Pois bem, elas não existem mais! | |
Veja com seus próprios olhos. | |
Crie este script: | |
<?php | |
mysql_connect( 'localhost', 'root', '' ); | |
Vamos chamá-lo de mysql.php. | |
Agora execute-o no terminal: | |
php mysql.php | |
Você verá esta mensagem: | |
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in mysql.php:3 | |
Stack trace: | |
#0 {main} | |
thrown in mysql.php on line 3 | |
Ou seja, agora você deverá usar MySQLi ou PDO. | |
Eu recomendo PDO e você já deve saber o motivo. Se não sabe, leia este meu artigo sobre como usar PDO com MySQL. | |
Agora vamos falar sobre Expressões Regulares (Regex) | |
Você costuma usar funções como ereg, eregi, ereg_replace e semelhantes? | |
Espero que não... | |
Elas eram obsoletas desde o PHP 5.3. | |
E, assim como as funções mysql_*, as funções ereg_* e eregi_* também foram REMOVIDAS no PHP 7. | |
Faça o teste: | |
<?php | |
ereg( '^[a-z]$', 'php7' ); | |
Saída: | |
Fatal error: Uncaught Error: Call to undefined function ereg() in ereg.php:3 | |
Stack trace: | |
#0 {main} | |
thrown in ereg.php on line 3 | |
Qual é a solução? | |
Simples: usar funções preg_*, como preg_match, preg_replace e semelhantes. | |
Veja todas elas neste link. | |
Existem poucas diferenças. O principal é que as funções preg_* exigem delimitadores e, consequentemente, permitem utilizar alguns modificadores, como o "i", que torna a ER case-insensitive. Ou seja, se você usava eregi_*, precisará sempre usar o modificador "i" nas ERs com funções preg_*. | |
Há algumas outras funções e recursos removidos do PHP 7. Eles são poucos usados, então não falarei deles aqui. Mas você pode ver a lista no RFC oficial sobre recursos obsoletos. | |
Antes de terminar a aula de hoje, preste atenção nas mensagens de erro que vimos hoje: | |
Fatal error: Uncaught Error: Call to undefined function ... | |
Note o "Uncaught Error". | |
Parece familiar? | |
Se você já trabalhou com Exceções, esse "Uncaught" é seu conhecido. | |
No PHP 7, os erros fatais (Fatal Errors) se tornaram um tipo de exceção e podem ser "pegos" usando um bloco try/catch. | |
Mas isso é tema para outra aula. Vamos ver isso com calma logo logo. | |
Qualquer dúvida, só responder o email, que eu te ajudo. |