Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: batman, dodany: 20.02.2012 14:39, tagi: php

Firma JetBrains odpowiedzialna za jedno z najlepszych IDE dla PHP ogłosiła właśnie rozpoczęcie Early Access Program (EAP), którego celem jest wydanie kolejnej wersji PhpStorm. W udostępnionej właśnie wersji pojawi się kilka ważnych usprawnień, które na pewno ucieszą użytkowników tego narzędzia.

Do najważniejszych można zaliczyć:

  • wykorzystanie platformy IntelliJ 11.1, czyli będzie szybciej i ładniej
  • dodanie wsparcia dla PHP 5.4, m.in dla traitsów
  • pokrycie kodu będzie działać dla Xdebuga oraz Zend Debuggera
  • debugger będzie obsługiwał wbudowany w PHP 5.4 serwer
  • wsparcie dla ECMA Script 6
  • lepsze wsparcie dla SASS, LESS oraz CoffeeScript
  • generowanie projektu na podstawie HTML5 boilerplate oraz NodeJS boilerplate

Więcej informacji znajdziecie w komunikacie opublikowanym na oficjalnym blogu PhpStorm.

Autor wpisu: batman, dodany: 20.02.2012 08:00, tagi: css

Nettuts+ zaserwował nam kolejny quiz na temat wiedzy o CSS. Tym razem na warsztat trafił CSS3. Niestety nie popisałem się i osiągnąłem wyjątkowo słaby wynik – nieco ponad 54%. Napiszcie w komentarzu jak wam poszło.

image

Autor wpisu: batman, dodany: 16.02.2012 21:09, tagi: php

Odbierając dzisiaj pocztę, najmniej się spodziewałem informacji o uzyskaniu dostępu do wersji beta AppFog, o którym szczerze mówiąc, powoli zaczynałem zapominać. Na szczęście okazało się, że nie zapomniano o mnie i w mojej skrzynce wylądowało zaproszenie do nowej chmury, pozwalającej korzystać z dobrodziejstw nowych “zabawek” dla developerów.

appfog

Ochocza zabrałem się do testowania i muszę przyznać, że coś w tym jest. Ponieważ opisuję wszystko “na gorąco”, część informacji może okazać się niepoprawna lub nieaktualna, ale mam nadzieję, że wybaczycie mi ten brak profesjonalizmu ;)

Po zalogowaniu się do panelu administracyjnego otrzymujemy dostęp do wszelkich możliwych ustawień oraz informacji o naszym koncie. Warto od razu zaznaczyć, że na czas beta testów korzystanie z AppFog jest bezpłatne. Nie ma jednak co się cieszyć, ponieważ ekipa odpowiedzialna za chmurę wyraźnie zaznaczyła, iż nie powinniśmy stawiać produkcyjnych aplikacji – w końcu to tylko beta.

appfog-admin

Z poziomu panelu administracyjnego możemy przede wszystkim utworzyć nową aplikację.

image

Możemy stworzyć własną aplikację lub skorzystać z już gotowej. Niestety wyboru nie mamy zbyt dużego – Nwiki (aplikacja oparta o Node.js, korzystająca z MongoDB), WordPress (raczej nie wymaga wyjaśnień) oraz RSM Browser (przeglądarka zasobów MongoDB napisana w Ruby).

Ponieważ Node.js oraz Ruby znam o wiele gorzej niż PHP, wybrałem WordPressa. Instalacja zajęła nie więcej niż kilkanaście sekund i po chwili mogłem zabrać się za konfigurację bloga. Od strony administracyjnej niczym się on nie różni od WordPressa hostowanego na każdym innym hostingu. Może działa nieco szybciej. Zaktualizowałem WP do najnowszej wersji, zaktualizowałem pluginy oraz skórki i nie pojawiły się żadne problemy.

Korzystając z okazji, że za wersję beta nie trzeba płacić, poszalałem z zasobami serwera oraz ustawieniami aplikacji. Okazało się, że można uruchomić do 10 instancji aplikacji, skierować własną domenę na aplikację oraz przydzielić do 2 GB pamięci. Ponadto otrzymujemy do dyspozycji bazę Mysql w wersji 5.1 oraz MongoDB w wersji 1.8. Poza tym możemy dodać własne zmienne środowiskowe oraz aktualizować aplikację przy pomocy Gita i Githuba.

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Michal Wachowski, dodany: 14.02.2012 19:29, tagi: oop, php

Co ma wspólnego loose coupling z dependency injection. Po co jest dependnecy injection i po co do tego dokładać jeszcze kontener?

Autor wpisu: Athlan, dodany: 14.02.2012 15:33, tagi: zend_framework

Zend_Mail provides a great and simple in use and configuration mechanizm to send emails. The problem begins when you would like to specify fully templated and layouted messages.

In my current project I have several kinds of mails: customer invoices and messages, users notifications, admin notifications, webmaster email about critical errors in scheduled system tasks. In this case the Zend_Layout fits perfectly to redner rich text content by Zend_View, but it is implemented in Zend_Mail, wchih provies simply setBodyText() and setBodyHTML() methods.

This inconvenience is understandable by the way, mainly in context simpe, clear and flexible extendable code of Zend Framework. We will strive to extend the functionality od Zend_Mail following ZF developers concepts.

Overview

Writing class extending Zend_Mail I kept a several concepts:

  • Messages should be both templated and layouted using Zend_View and Zend_Layout.
  • The email view scripts (templates) there are in main view scripts directory nested in subdirectory (as deep as you want).
  • … The same path story with layouts.
  • You can use this object excatly the same way as Zend_Mail. It behaviour the same way as parent until you set special options (like point to view script path or file to render in body).
  • … and object should keep Zend_Mail fluent interface (returning $this in setters) to provide method chaining fluent interface.
  • Pointed view file is rendered as a mail body.
  • You can use this object excatly the same way as Zend_Mail. It behaviour the same way as parent until you set special options (like point to view script path or file to render in body).

Zend_Mail application.ini configuration and extending application

Simply paste several lines to application.ini configuration, theare are self-commented, description is not neccessary at this point. We will use SMTP transport:

resources.mail.transport.type = smtp
resources.mail.transport.host = YOUR_HOSTNAME
resources.mail.transport.auth = login
resources.mail.transport.username = "YOUR_ACCOUNT"
resources.mail.transport.password = "YOUR_PASSWORD"
resources.mail.transport.register = true
 
resources.mail.defaultFrom.email = YOUR_ACCOUNT
resources.mail.defaultFrom.name = "MyService.com"
resources.mail.defaultReplyTo.email = YOUR_ACCOUNT
resources.mail.defaultReplyTo.name = "MyService.com"

In addition we will create tho additional directories and files:

  • /application/views/scripts/email/-  just add a subdirectory /email to existing view scripts directory.
  • /application/layouts/scripts/email/ – the same story as above
TIP: I have moved default configured layouts direcotry to /application/views/layouts/ to unify structure of application. Just change in application.ini this line:
resources.layout.layoutPath = APPLICATION_PATH "/modules/default/views/layouts/scripts/"

To test our class let’s create additional two files:

/application/layouts/scripts/email/html.phtml

< ?php echo $this->layout()->content ?>
<p>--<br />Best Regards,<br />MyService.com</p>

and scond one, the information about successfull account register with your own content:

/application/views/scripts/email/AccountRegister.phtml

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Athlan, dodany: 14.02.2012 00:45, tagi: zend_framework

I have just started introducing Zend Framework when I had to face the problem with output multiple error messages in form while email address validation. Checking domain (whith is enabled by default) causes additional error messages indicates anomalies in hostname segment of provided by user email address. In result, we receive several errors assigned to one email field.

The problem is easy to slove by overriding default behaviour of Zend_Validate_EmailAddress clearing all messages generating while validation and setup a new single error message.

Simply add namespace MyOwn_ for own needs and provide class in file /libraries/MyOwn/Validate/EmailAddess.php

class MyOwn_Validate_EmailAddress extends Zend_Validate_EmailAddress
{
  const INVALID = 'emailAddressInvalid';
 
  protected $_messageTemplates = array(
    self::INVALID => "Invalid Email Address."
  );
 
  public function isValid($value)
  {
    parent::setOptions(array(
      'allow' => Zend_Validate_Hostname::ALLOW_DNS,
      'domain' => true,
      'mx' => true,
      'deep' => true)
    );
 
    if(!parent::isValid($value)) {
      $this->_messages = array(); // clear all previous messages
      $this->_error(self::INVALID);
      return false;
    }
 
    return true;
  }
}

And provide above custom validator to form element in /application/forms/AccountRegister.php:

class Form_AccountRegister extends Zend_Form
{
  public function init()
  {
    $this->setMethod('post')
         ->setName('Account_Register');
 
    $email = new Zend_Form_Element_Text('email');
    $email
      ->setLabel('Email address')
      ->addValidator(new ZendUtil_Validate_EmailAddress)
      ->setRequired(true);
 
    $this->addElement($email);
 
  }
}

NOTE:

  • In addition, you can simply translate the emailAddressInvalid message.
  • For sticklers, setting options in isValid method is hardcoded with look like a messy code, but it is quick-fix

Hope it will help.

Autor wpisu: Wojciech Sznapka, dodany: 09.02.2012 23:33, tagi: php

As you probably have noticed, PHP 5.4 is around the corner. As far, there’s Release Candidate 6 available and final release is a matter of weeks. Let’s have a look at new features, that will make PHPers live easier. Traits The major change is traits implementation. Traits aims to reuse code in horizontal way. It’s [...]
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.