Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: thejw23, dodany: 30.07.2009 00:11, tagi: php

do grona niewielkich programow ulatwiajacych codzienna prace przy komputerze dolaczylem ostatnio TreePad Lite. jest to niewielki program pozwalajacy tworzyc kategorie (podkategorie itd) a nastepnie przypisywac im notatki. po co to na codzien? ano po to: widze ciekawy skrypt php - pstryk, dodalem go do biblioteczki php. link to smiesznego filmu? copy-paste i mam go. js, css? copy-paste i sa moje. i tak dalej. plus jest taki, ze mam wszystko w jednym niewielkim, lekkim dla systemu programie, w postaci tekstu, a nie html. nie musze szukac w kilku miejscach - mam jedna baze z tego typu rzeczami. a sam program nie integruje sie z systemem, mozna na pendrive nosic.druga rzecz to Anuko TimeTracker. jest to niewielka aplikacja php/mysql ulatwiajaca kontrole czasu nad poszczegolnymi elementami projektu. przeznaczona jest bardziej dla freelancera niz managera projektu w firmie i spelnia swoje zadanie calkiem niezle. mozna tu wiec dodac firmy, projekty i zadania. przypisywac codziennie czas spedzony nad poszczegolnymi rzeczami i na koniec wygenerowac raport. calosc ma czytelny interface, sama obsluga jest bardzo prosta i intuicyjna.owszem, mozna chciec wiecej. np. taki Mantis z wygodnym zarzadzaniem czasem dla kazdego zadania. ale za darmo nie ma (czytaj: nie znam) lepszych rozwiazan. to nie jest jakis wielki problem pracowac z Mantisem i na koniec dnia dodac w TimeTracker czas + info na ktore bug`i zostal on przeznaczony. tym bardziej, ze nie zawsze kontrola czasu musi byc widoczna przez innych uzytkownikow Manisa, czasem (zalezy od projektu) robi sie ja tylko dla siebie, aby wiedziec ile czasu zeszlo na poszczegolne rzeczy i latwiej to w przyszlosci oszacowac.oba wspomniane programy sa darmowe.

Autor wpisu: Zyx, dodany: 27.07.2009 14:30, tagi: php

Wraz ze wzrostem złożoności tworzonego systemu pojawia się problem jego należytego przetestowania. W obliczu dużej liczby zależności między komponentami, ręczne sprawdzanie wyników działania nie wchodzi w grę, chociażby z uwagi na uciekający czas. Rozwiązaniem są testy automatyczne. W przypadku PHP, jednym z najlepszych pakietów do testowania jest PHPUnit wzorowany na javowym JUnit. W tym wpisie pragnę opisać, jak można zbudować środowisko do testowania naszego projektu.

Autor wpisu: eRIZ, dodany: 27.07.2009 01:12, tagi: internet, apache, php, skrypty

mod_rewrite, rewriting, przyjazne URL-e/adresy, maskowanie, przepisywanie, nazw jest sporo. Zresztą, najpopularniejsza pochodzi od swojego protoplasty - czyli mod_rewrite powstałego pod skrzydłami Apache’a jako moduł. Teraz właściwie standard, jeśli chodzi o nowoczesne strony www - nie tylko ze względu na wygląd, ale i (jak ptaszki ćwierkają, choć jest to wątpliwe wobec oficjalnych źródeł) SEO.

Jak zwał, tak zwał, adres http://example.org/kawalek/adresu wygląda dużo estetyczniej i jest łatwiejszy do zapamiętania niż potworki typu http://example.org/?kawalek=adresu&i=jeszcze&inny=fin

Niby nie jest to takie skomplikowane, ale niektóre sytuacje wydają się nie do rozwiązania.

Uwaga, notka tasiemcowata, więc jest spis treści. Polecam się również uzbroić w odpowiednią ilość czasu. ;]

Autor wpisu: eRIZ, dodany: 21.07.2009 00:17, tagi: internet, php, skrypty

W trakcie rozważań z ^kwiateuszem nad jakimiś usprawnieniami dla Forum PHP.pl (IPBoard) przyszedł mi do głowy pomysł, który zauważyłem kiedyś na Polskim Forum Jabbera. Stworzono do niego mod, który umożliwia powiadamianie użytkowników o nowych postach właśnie przez Jabbera.

Pisałem już o module powiadomień opartym o klasę Jabbera dla PHP, ale co w sytuacji, gdy serwer jest bardziej obciążony? Dla małych forów wcześniej omówione rozwiązanie - jak znalazł. Natomiast w przypadku większych aplikacji będzie stanowiło pewien problem - od wydajności po gubienie powiadomień, czy inne nieprzewidziane sytuacje.

Dlatego wykorzystamy w tym celu popularnego klienta IM pod shella, mianowicie ekg2. Umożliwi on również skorzystanie z powiadomień do innych sieci, m.in. Gadu-gadu, czy Tlen.

Autor wpisu: Zyx, dodany: 20.07.2009 12:25, tagi: php

Twórcy wszystkich systemów szablonów zachwalają wydajność swoich rozwiązań, a po nich jadą wszyscy programiści korzystający z czystego PHP, że właśnie takie podejście jest gwarancją wydajności. Jak jest w istocie? Postanowiłem się przekonać. Przygotowałem zestaw siedmiu testów badających kilka podstawowych aspektów, a do rywalizacji stanęły cztery systemy szablonów: PHPTAL 1.2.0, Smarty 2.6.26, Open Power Template 2.0.0 i... Zend_View z Zend Frameworka 1.8.4 jako reprezentant PHP.

Autor wpisu: Łukasz Rodziewicz, dodany: 18.07.2009 23:12, tagi: php, symfony

Propel generators are very useful tool, they automate creating of most common CRUD modules. However default theme have serial issues. Mostly, html forms are based on tables and list is not a sfPropelPager.

But there is an easy way to make your own theme based on symfony default. You can find it into sf_pear_dir/data/generator/sfPropelModule/default and add/modify whatever you want. To use it in your app just putt it into sf_project_dir/data/geneator/sfPropelModule directory.

Then using symfony console script use “theme” argument:

empathon@aden ~/workspace/example $ symfony propel:generate-module backend author Author --with-show --theme=clean

I have create my own custom theme with forms on divs, pager, flash messege on delete and create/edit. You can download it here.

Udpate: Few errors fixed.

Autor wpisu: Łukasz Rodziewicz, dodany: 13.07.2009 04:56, tagi: php, symfony

That was tricky. I hope it will help somebody.

<?php
class SomeForm extends sfForm
{
	//..
 
	/**
	 * Return array of current errors
	 *
	 * @return array
	 */
	public function getErrorsArray()
	{
		$errors = $embedded_forms_name = array();
		foreach($this->getEmbeddedForms() as $embedded_form){
			$embedded_forms_name[] = $embedded_form->getName();
		}
		foreach($this as $field){
			if($field->hasError())
			{
				if(in_array($field->getName(), $embedded_forms_name)){
					foreach($field as $field_embedded){
						if($field_embedded->hasError()) $errors[$field->getName().'_'.$field_embedded->getName()] = $field_embedded->getError()->__toString();
					}
				} else {
					$errors[$field->getName()] = $field->getError()->__toString();
				}
			}
		}
		return $errors;
	}
}

For embedded forms it return embedded form name plus field name as a key. You got an idea ;-) It should be standard feature IMHO.

Update: Of course there is a easier way if you don’t have embedded forms:

//...
foreach ($this as $field) {
	$field->hasError() ? $errors[$field->getName()] = $field->getError()__toString() : null;
}

or

//...
foreach ($this->getErrorSchema()->getErrors() as $name => $error) {
	$errors[$name] = $error->getMessageFormat();
}
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.