Jaime Neto | desenvolvimento para web

maio/17

29

Classe PHP para países


Não raramente precisamos trabalhar com países em nossos sistemas. Então, vou deixar aqui uma classe PHP já pronta pra isso, com suporte a internacionalização, inclusive.
Deixei a classe já com os países em inglês e português, quem precisar pode adicionar outros países, caso necessário.
Também adicionei dois métodos estáticos para buscar o nome pelo código do país, e o contrário também. O motivo de ter criado como métodos estáticos é apenas por questões práticas, pois assim não é necessário instanciar a classe antes de usá-la.

class Countries
{
    private static $countries = [
        'en' => [
            'AF' => 'Afghanistan',
            'ZA' => 'South Africa',
            'AX' => 'Aland Islands',
            'AL' => 'Albania',
            'DE' => 'Germany',
            'AD' => 'Andorra',
            'AO' => 'Angola',
            'AI' => 'Anguilla',
            'AQ' => 'Antarctica',
            'AG' => 'Antigua and Barbuda',
            'AN' => 'Netherlands Antilles',
            'SA' => 'Saudi Arabia',
            'DZ' => 'Algeria',
            'AR' => 'Argentina',
            'AM' => 'Armenia',
            'AW' => 'Aruba',
            'AU' => 'Australia',
            'AT' => 'Austria',
            'AZ' => 'Azerbaijan',
            'BS' => 'Bahamas',
            'BH' => 'Bahrain',
            'BD' => 'Bangladesh',
            'BB' => 'Barbados',
            'BE' => 'Belgium',
            'BZ' => 'Belize',
            'BJ' => 'Benin',
            'BM' => 'Bermuda',
            'BY' => 'Belarus',
            'BO' => 'Bolivia',
            'BA' => 'Bosnia and Herzegovina',
            'BW' => 'Botswana',
            'BV' => 'Bouvet Island',
            'BR' => 'Brazil',
            'BN' => 'Brunei Darussalam',
            'BG' => 'Bulgaria',
            'BF' => 'Burkina Faso',
            'BI' => 'Burundi',
            'BT' => 'Bhutan',
            'CV' => 'Cape Verde',
            'KH' => 'Cambodia',
            'CM' => 'Cameroon',
            'CA' => 'Canada',
            'KY' => 'Cayman Islands',
            'KZ' => 'Kazakhstan',
            'CF' => 'Central African Republic',
            'TD' => 'Chad',
            'CZ' => 'Czech Republic',
            'CL' => 'Chile',
            'CN' => 'China',
            'CY' => 'Cyprus',
            'CX' => 'Christmas Island',
            'CC' => 'Cocos (Keeling) Islands',
            'CO' => 'Colombia',
            'KM' => 'Comoros',
            'CG' => 'Congo',
            'CD' => 'Congo',
            'CK' => 'Cook Islands',
            'KR' => 'South Korea',
            'KP' => 'North Korea',
            'CI' => "Cote d'Ivoire",
            'CR' => 'Costa Rica',
            'HR' => 'Croatia',
            'CU' => 'Cuba',
            'DK' => 'Denmark',
            'DJ' => 'Djibouti',
            'DM' => 'Dominica',
            'DO' => 'Dominican Republic',
            'EG' => 'Egypt',
            'SV' => 'El Salvador',
            'AE' => 'United Arab Emirates',
            'EC' => 'Ecuador',
            'ER' => 'Eritrea',
            'SK' => 'Slovakia',
            'SI' => 'Slovenia',
            'ES' => 'Spain',
            'US' => 'United States',
            'EE' => 'Estonia',
            'ET' => 'Ethiopia',
            'FO' => 'Faroe Islands',
            'FJ' => 'Fiji',
            'PH' => 'Philippines',
            'FI' => 'Finland',
            'FR' => 'France',
            'GA' => 'Gabon',
            'GM' => 'Gambia',
            'GH' => 'Ghana',
            'GE' => 'Georgia',
            'GS' => 'South Georgia and The South Sandwich Islands',
            'GI' => 'Gibraltar',
            'GR' => 'Greece',
            'GD' => 'Grenada',
            'GL' => 'Greenland',
            'GP' => 'Guadeloupe',
            'GU' => 'Guam',
            'GT' => 'Guatemala',
            'GG' => 'Guernsey',
            'GY' => 'Guyana',
            'GF' => 'French Guiana',
            'GW' => 'Guinea-Bissau',
            'GN' => 'Guinea',
            'GQ' => 'Equatorial Guinea',
            'HT' => 'Haiti',
            'HM' => 'Heard Island and McDonald Islands',
            'HN' => 'Honduras',
            'HK' => 'Hong Kong',
            'HU' => 'Hungary',
            'YE' => 'Yemen',
            'IN' => 'India',
            'ID' => 'Indonesia',
            'IQ' => 'Iraq',
            'IR' => 'Iran',
            'IE' => 'Ireland',
            'IS' => 'Iceland',
            'IL' => 'Israel',
            'IT' => 'Italy',
            'JM' => 'Jamaica',
            'JP' => 'Japan',
            'JE' => 'Jersey',
            'JO' => 'Jordan',
            'KI' => 'Kiribati',
            'KW' => 'Kuwait',
            'LA' => "Lao People's Democratic Republic",
            'LS' => 'Lesotho',
            'LV' => 'Latvia',
            'LB' => 'Lebanon',
            'LR' => 'Liberia',
            'LY' => 'Libyan Arab Jamahiriya',
            'LI' => 'Liechtenstein',
            'LT' => 'Lithuania',
            'LU' => 'Luxembourg',
            'MO' => 'Macao',
            'MK' => 'Macedonia',
            'MG' => 'Madagascar',
            'MY' => 'Malaysia',
            'MW' => 'Malawi',
            'MV' => 'Maldives',
            'ML' => 'Mali',
            'MT' => 'Malta',
            'FK' => 'Falkland Islands (Malvinas)',
            'IM' => 'Isle of Man',
            'MP' => 'Northern Mariana Islands',
            'MA' => 'Morocco',
            'MH' => 'Marshall Islands',
            'MQ' => 'Martinique',
            'MU' => 'Mauritius',
            'MR' => 'Mauritania',
            'YT' => 'Mayotte',
            'UM' => 'United States Minor Outlying Islands',
            'MX' => 'Mexico',
            'MM' => 'Myanmar',
            'FM' => 'Micronesia',
            'MZ' => 'Mozambique',
            'MD' => 'Moldova',
            'MC' => 'Monaco',
            'MN' => 'Mongolia',
            'ME' => 'Montenegro',
            'MS' => 'Montserrat',
            'NA' => 'Namibia',
            'NR' => 'Nauru',
            'NP' => 'Nepal',
            'NI' => 'Nicaragua',
            'NE' => 'Niger',
            'NG' => 'Nigeria',
            'NU' => 'Niue',
            'NF' => 'Norfolk Island',
            'NO' => 'Norway',
            'NC' => 'New Caledonia',
            'NZ' => 'New Zealand',
            'OM' => 'Oman',
            'NL' => 'Netherlands',
            'PW' => 'Palau',
            'PS' => 'Palestinian Territory, Occupied',
            'PA' => 'Panama',
            'PG' => 'Papua New Guinea',
            'PK' => 'Pakistan',
            'PY' => 'Paraguay',
            'PE' => 'Peru',
            'PN' => 'Pitcairn',
            'PF' => 'French Polynesia',
            'PL' => 'Poland',
            'PR' => 'Puerto Rico',
            'PT' => 'Portugal',
            'QA' => 'Qatar',
            'KE' => 'Kenya',
            'KG' => 'Kyrgyzstan',
            'GB' => 'United Kingdom',
            'RE' => 'Reunion',
            'RO' => 'Romania',
            'RW' => 'Rwanda',
            'RU' => 'Russian Federation',
            'EH' => 'Western Sahara',
            'AS' => 'American Samoa',
            'WS' => 'Samoa',
            'PM' => 'Saint Pierre and Miquelon',
            'SB' => 'Solomon Islands',
            'KN' => 'Saint Kitts and Nevis',
            'SM' => 'San Marino',
            'ST' => 'Sao Tome and Principe',
            'VC' => 'Saint Vincent and The Grenadines',
            'SH' => 'Saint Helena, Ascension and Tristan Da Cunha',	 
            'LC' => 'Saint Lucia',
            'SN' => 'Senegal',
            'SL' => 'Sierra Leone',
            'RS' => 'Serbia',
            'SC' => 'Seychelles',
            'SG' => 'Singapore',
            'SY' => 'Syrian Arab Republic',
            'SO' => 'Somalia',
            'LK' => 'Sri Lanka',
            'SZ' => 'Swaziland',
            'SD' => 'Sudan',
            'SE' => 'Sweden',
            'CH' => 'Switzerland',
            'SR' => 'Suriname',
            'SJ' => 'Svalbard and Jan Mayen',
            'TH' => 'Thailand',
            'TW' => 'Taiwan',
            'TJ' => 'Tajikistan',
            'TZ' => 'Tanzania',
            'TF' => 'French Southern Territories',
            'IO' => 'British Indian Ocean Territory',
            'TL' => 'Timor-Leste',
            'TG' => 'Togo',
            'TK' => 'Tokelau',
            'TO' => 'Tonga',
            'TT' => 'Trinidad and Tobago',
            'TN' => 'Tunisia',
            'TC' => 'Turks and Caicos Islands',
            'TM' => 'Turkmenistan',
            'TR' => 'Turkey',
            'TV' => 'Tuvalu',
            'UA' => 'Ukraine',
            'UG' => 'Uganda',
            'UY' => 'Uruguay',
            'UZ' => 'Uzbekistan',
            'VU' => 'Vanuatu',
            'VA' => 'Holy See (Vatican City State)',
            'VE' => 'Venezuela',
            'VN' => 'Viet Nam',
            'VI' => 'Virgin Islands, U.S.',
            'VG' => 'Virgin Islands, British',
            'WF' => 'Wallis and Futuna',
            'ZM' => 'Zambia',
            'ZW' => 'Zimbabwe',
        ],
        'pt' => [
            'AF' => 'Afeganistão',
            'ZA' => 'África do Sul',
            'AX' => 'Åland, Ilhas',
            'AL' => 'Albânia',
            'DE' => 'Alemanha',
            'AD' => 'Andorra',
            'AO' => 'Angola',
            'AI' => 'Anguilla',
            'AQ' => 'Antárctida',
            'AG' => 'Antigua e Barbuda',
            'AN' => 'Antilhas Holandesas',
            'SA' => 'Arábia Saudita',
            'DZ' => 'Argélia',
            'AR' => 'Argentina',
            'AM' => 'Arménia',
            'AW' => 'Aruba',
            'AU' => 'Austrália',
            'AT' => 'Áustria',
            'AZ' => 'Azerbeijão',
            'BS' => 'Bahamas',
            'BH' => 'Bahrain',
            'BD' => 'Bangladesh',
            'BB' => 'Barbados',
            'BE' => 'Bélgica',
            'BZ' => 'Belize',
            'BJ' => 'Benin',
            'BM' => 'Bermuda',
            'BY' => 'Bielo-Rússia',
            'BO' => 'Bolívia',
            'BA' => 'Bósnia-Herzegovina',
            'BW' => 'Botswana',
            'BV' => 'Bouvet, Ilha',
            'BR' => 'Brasil',
            'BN' => 'Brunei',
            'BG' => 'Bulgária',
            'BF' => 'Burkina Faso',
            'BI' => 'Burundi',
            'BT' => 'Butão',
            'CV' => 'Cabo Verde',
            'KH' => 'Cambodja',
            'CM' => 'Camarões',
            'CA' => 'Canadá',
            'KY' => 'Cayman, Ilhas',
            'KZ' => 'Cazaquistão',
            'CF' => 'Centro-africana, República',
            'TD' => 'Chade',
            'CZ' => 'Checa, República',
            'CL' => 'Chile',
            'CN' => 'China',
            'CY' => 'Chipre',
            'CX' => 'Christmas, Ilha',
            'CC' => 'Cocos, Ilhas',
            'CO' => 'Colômbia',
            'KM' => 'Comores',
            'CG' => 'Congo, República do',
            'CD' => 'Congo',
            'CK' => 'Cook, Ilhas',
            'KR' => 'Coreia do Sul',
            'KP' => 'Coreia do Norte',
            'CI' => 'Costa do Marfim',
            'CR' => 'Costa Rica',
            'HR' => 'Croácia',
            'CU' => 'Cuba',
            'DK' => 'Dinamarca',
            'DJ' => 'Djibouti',
            'DM' => 'Dominica',
            'DO' => 'Dominicana, República',
            'EG' => 'Egipto',
            'SV' => 'El Salvador',
            'AE' => 'Emiratos Árabes Unidos',
            'EC' => 'Equador',
            'ER' => 'Eritreia',
            'SK' => 'Eslováquia',
            'SI' => 'Eslovénia',
            'ES' => 'Espanha',
            'US' => 'Estados Unidos',
            'EE' => 'Estónia',
            'ET' => 'Etiópia',
            'FO' => 'Faroe, Ilhas',
            'FJ' => 'Fiji',
            'PH' => 'Filipinas',
            'FI' => 'Finlândia',
            'FR' => 'França',
            'GA' => 'Gabão',
            'GM' => 'Gâmbia',
            'GH' => 'Gana',
            'GE' => 'Geórgia',
            'GS' => 'Geórgia do Sul e Sandwich do Sul, Ilhas',
            'GI' => 'Gibraltar',
            'GR' => 'Grécia',
            'GD' => 'Grenada',
            'GL' => 'Gronelândia',
            'GP' => 'Guadeloupe',
            'GU' => 'Guam',
            'GT' => 'Guatemala',
            'GG' => 'Guernsey',
            'GY' => 'Guiana',
            'GF' => 'Guiana Francesa',
            'GW' => 'Guiné-Bissau',
            'GN' => 'Guiné-Conacri',
            'GQ' => 'Guiné Equatorial',
            'HT' => 'Haiti',
            'HM' => 'Heard e Ilhas McDonald, Ilha',
            'HN' => 'Honduras',
            'HK' => 'Hong Kong',
            'HU' => 'Hungria',
            'YE' => 'Iémen',
            'IN' => 'Índia',
            'ID' => 'Indonésia',
            'IQ' => 'Iraque',
            'IR' => 'Irão',
            'IE' => 'Irlanda',
            'IS' => 'Islândia',
            'IL' => 'Israel',
            'IT' => 'Itália',
            'JM' => 'Jamaica',
            'JP' => 'Japão',
            'JE' => 'Jersey',
            'JO' => 'Jordânia',
            'KI' => 'Kiribati',
            'KW' => 'Kuwait',
            'LA' => 'Laos',
            'LS' => 'Lesoto',
            'LV' => 'Letónia',
            'LB' => 'Líbano',
            'LR' => 'Libéria',
            'LY' => 'Líbia',
            'LI' => 'Liechtenstein',
            'LT' => 'Lituânia',
            'LU' => 'Luxemburgo',
            'MO' => 'Macau',
            'MK' => 'Macedónia, República da',
            'MG' => 'Madagáscar',
            'MY' => 'Malásia',
            'MW' => 'Malawi',
            'MV' => 'Maldivas',
            'ML' => 'Mali',
            'MT' => 'Malta',
            'FK' => 'Malvinas, Ilhas (Falkland)',
            'IM' => 'Man, Ilha de',
            'MP' => 'Marianas Setentrionais',
            'MA' => 'Marrocos',
            'MH' => 'Marshall, Ilhas',
            'MQ' => 'Martinica',
            'MU' => 'Maurícia',
            'MR' => 'Mauritânia',
            'YT' => 'Mayotte',
            'UM' => 'Menores Distantes dos Estados Unidos, Ilhas',
            'MX' => 'México',
            'MM' => 'Myanmar (antiga Birmânia)',
            'FM' => 'Micronésia, Estados Federados da',
            'MZ' => 'Moçambique',
            'MD' => 'Moldávia',
            'MC' => 'Mónaco',
            'MN' => 'Mongólia',
            'ME' => 'Montenegro',
            'MS' => 'Montserrat',
            'NA' => 'Namíbia',
            'NR' => 'Nauru',
            'NP' => 'Nepal',
            'NI' => 'Nicarágua',
            'NE' => 'Níger',
            'NG' => 'Nigéria',
            'NU' => 'Niue',
            'NF' => 'Norfolk, Ilha',
            'NO' => 'Noruega',
            'NC' => 'Nova Caledónia',
            'NZ' => 'Nova Zelândia',
            'OM' => 'Oman',
            'NL' => 'Países Baixos (Holanda)',
            'PW' => 'Palau',
            'PS' => 'Palestina',
            'PA' => 'Panamá',
            'PG' => 'Papua-Nova Guiné',
            'PK' => 'Paquistão',
            'PY' => 'Paraguai',
            'PE' => 'Peru',
            'PN' => 'Pitcairn',
            'PF' => 'Polinésia Francesa',
            'PL' => 'Polónia',
            'PR' => 'Porto Rico',
            'PT' => 'Portugal',
            'QA' => 'Qatar',
            'KE' => 'Quénia',
            'KG' => 'Quirguistão',
            'GB' => 'Reino Unido',
            'RE' => 'Reunião',
            'RO' => 'Roménia',
            'RW' => 'Ruanda',
            'RU' => 'Rússia',
            'EH' => 'Saara Ocidental',
            'AS' => 'Samoa Americana',
            'WS' => 'Samoa (Samoa Ocidental)',
            'PM' => 'Saint Pierre et Miquelon',
            'SB' => 'Salomão, Ilhas',
            'KN' => 'São Cristóvão e Névis',
            'SM' => 'San Marino',
            'ST' => 'São Tomé e Príncipe',
            'VC' => 'São Vicente e Granadinas',
            'SH' => 'Santa Helena',	 
            'LC' => 'Santa Lúcia',
            'SN' => 'Senegal',
            'SL' => 'Serra Leoa',
            'RS' => 'Sérvia',
            'SC' => 'Seychelles',
            'SG' => 'Singapura',
            'SY' => 'Síria',
            'SO' => 'Somália',
            'LK' => 'Sri Lanka',
            'SZ' => 'Suazilândia',
            'SD' => 'Sudão',
            'SE' => 'Suécia',
            'CH' => 'Suíça',
            'SR' => 'Suriname',
            'SJ' => 'Svalbard e Jan Mayen',
            'TH' => 'Tailândia',
            'TW' => 'Taiwan',
            'TJ' => 'Tajiquistão',
            'TZ' => 'Tanzânia',
            'TF' => 'Terras Austrais e Antárticas Francesas (TAAF)',
            'IO' => 'Território Britânico do Oceano Índico',
            'TL' => 'Timor-Leste',
            'TG' => 'Togo',
            'TK' => 'Toquelau',
            'TO' => 'Tonga',
            'TT' => 'Trindade e Tobago',
            'TN' => 'Tunísia',
            'TC' => 'Turks e Caicos',
            'TM' => 'Turquemenistão',
            'TR' => 'Turquia',
            'TV' => 'Tuvalu',
            'UA' => 'Ucrânia',
            'UG' => 'Uganda',
            'UY' => 'Uruguai',
            'UZ' => 'Usbequistão',
            'VU' => 'Vanuatu',
            'VA' => 'Vaticano',
            'VE' => 'Venezuela',
            'VN' => 'Vietname',
            'VI' => 'Virgens Americanas, Ilhas',
            'VG' => 'Virgens Britânicas, Ilhas',
            'WF' => 'Wallis e Futuna',
            'ZM' => 'Zâmbia',
            'ZW' => 'Zimbabwe'
        ]
    ];
 
    public static function getName($iso, $lang = 'pt')
    {
        return isset(self::$countries[$lang][$iso]) 
            ? self::$countries[$lang][$iso] 
            : null;
    }
 
    public static function getIso($name, $lang = 'en')
    {
        return array_search($name, self::$countries[$lang]);
    }
 
}

Abaixo, exemplifico o uso dos métodos:

 
Countries::getName('BR', 'pt'); // Retorna 'Brasil'
 
Countries::getIso('Brazil', 'en'); // Retorna 'BR'

No tags

maio/17

22

Coverter URLs em links


Digamos que você tenha um grande texto e quer usá-lo no seu site, e que no meio do texto tem URLs para outros sites. Você quer que o usuário possa clicar neles e serem direcionados para o endereço em questão. Ou seja, transformar as URLs em links.

Eis abaixo a função em PHP para fazer essa conversão:

(mais…)

No tags

maio/17

17

Coverter CamelCase e snake_case


Algumas vezes precisamos converter textos em CamelCase para snake_case, ou o contrário. Por exemplo, digamos que você use o nome dos atributos de uma classe em camelCase e os campos da tabela em camel_case, e em algum momento do seu código você precise converter esses nomes. Então, eis as funções PHP que você precisa para essas conversões:

(mais…)

No tags


Neste sábado (08 de Abril de 2017) aconteceu o 1º Meetup PHP-PB 2017 em João Pessoa/PB. Fui convidado para dar uma palestra sobre Phalcon Framework, e o tema que apresentei foi “Performance de verdade com Phalcon Framework”.

(mais…)

No tags


Você já teve que fazer uma consulta em alguma tabela de um banco de dados MySQL, em que você deseja ordenar por uma coluna específica, e no início dos resultados aparecem todos os campos null dessa coluna? Daí você quer manter a ordem, mas quer que os campos null fiquem no final dos resultados? Como você faz?

Bom, recentemente descobri uma forma bem fácil de fazer isso, e resolvi compartilhar aqui com quem mais precisar.  (mais…)

out/13

26

Usando mp3 como toque do iPhone


Pois é, estou cada vez mais virando um usuário das coisas da Apple. Mas as mesmas críticas que eu tinha da empresa eu mantenho, que não são grandes, mas que vez ou outra são um incomôdo, e que em aparelhos Android não existem. São eles:

  • Bluetooth difente, que só se conecta com outros aparelhos da Apple, e que não serve pra transmissão de arquivos (a menos que você encontre algum aplicativo que faça isso…);
  • Conector diferente, que, apesar de ser muito bom, existem vantagens em usar um padrão que é usado em todos os outros aparelhos;
  • Dependência do iTunes pra copiar arquivos pros dispositivos, que por sinal… ô programinha ruim, viu! Como pode, a Apple, que faz as coisas tão simples fazer algo tão incrivelmente pouco intuitiva e pouco prática?

Bom, mas a qualidade dos aparelhos (hardware) e do sistema operacional e aplicativos ainda fazem valer a pena ter um Apple, sem dúvida.

Uma das coisas que me incomodou bastante foi não poder usar um mp3 como toque do celular de uma forma prática, como eu fazia no meu Xperia. Até que, pesquisando no “Google é meu pastor e nada me faltará”, encontrei uma forma de fazê-lo! Eis os passos: (mais…)

·

jul/13

22

Campus Party Recife 2013


Campus Party

Campus Party

Semana passada fui pela primeira vez a uma Campus Party, ou seja, primeira vez como campuseiro. Foi na segunda Campus Party de Recife, ou #CPRecife2, que ocorreu de 17 a 20 de Julho, e resolvi deixar aqui minhas impressões.

Não é com muita frequência que podemos ver uma quantidade tão grande de nerds (incluindo eu) juntos num só lugar. Tanta gente com seus notebooks, tablets, smartphones, e até mesmo PCs, todos juntos debaixo do teto de uma casa de shows (Chevrolet Hall), assistindo palestras, jogando, acessando a internet ou correndo atrás de brindes. É disso que se trata a Campus Party, de forma resumida.
(mais…)


Neste sábado, 09 de Março de 2013, apresentei uma palestra online via Google Hang Out falando sobre minha experiência ao tirar a certificação Zend Framework.

ProPHP

Para quem tiver interesse, o vídeo pode ser visto logo abaixo, ou na página do PHP-PB (php-pb.net). E disponibilizei os slides da palestra no meu slideshare: http://www.slideshare.net/jaimecpn.
Link direto para esta palestra: http://www.slideshare.net/jaimecpn/certificao-zend-framework.

(mais…)

·

fev/13

28

Kindle Fire vs iPad Mini


Kindle Fire vs iPad Mini
Eu sei, eu sei… Parece uma comparação bem injusta, afinal, o correto seria comparar o Kindle Fire HD, que é mais recente. Porém o motivo dessa comparação é bem simples: eu tinha um Kindle Fire e, recentemente, comprei um iPad mini. ;D

Bom, como não há como compará-los em relação ao hardware, já que o iPad Mini é bem mais recente, vou focar nos aspectos mais gerais, e no sistema operacional.

(mais…)

· ·


Imagine a seguinte situação: você precisa fazer uma consulta numa tabela que tem muitos registros e, portanto, precisa fazer paginação do resultado. Ok até aí, é só criar um Zend_Db_Select e usar ele como parâmetro para um Zend_Paginator. Porém, na hora de iterar sobre o getItems() do paginator, você estará trabalhando com um array em vez de trabalhar com um objeto da sua classe modelo. O que fazer? Bom… você pode pegar todos os resultados, jogar num foreach e converter no objeto em questão, correto? Mas pra todo objeto vai ter que fazer isso de forma repetida… E agora?

Eis minha sugestão: Vamos criar um novo adapter para Zend_Paginator que é uma variação do Zend_Paginator_Adapter_DbSelect. A diferença é que esse adapter recebe um parâmetro adicional no construtor com o nome da classe modelo que você deseja como retorno na paginação.

(mais…)

·

Older posts >>

Theme Design by devolux.nh2.me