Hacker News new | past | comments | ask | show | jobs | submit login
The Yet Another Framework (Yaf), PHP extension for developing web applications (php.net)
59 points by bgaluszka on Nov 4, 2011 | hide | past | favorite | 35 comments



Another framework full of thinly veiled global variables:

http://uk.php.net/manual/en/class.yaf-registry.php


Since this is a PECL extension, and therefore compiled in C, I would love to see some performance information.


http://yaf.laruence.com/manual/yaf.bench.html

it looks like it's about 10% slower than pure PHP, orders of magnitude faster than most frameworks


So, apart from being written as an extension (and maybe a little bit faster that way), what's the point of Yaf?


What the point of your existence? :) To make world (in this particular case) of PHP different and give users ability to choose. Being an extension is pretty good point of existence IMHO


> Yaf require PHP version greater than 5.2.1, and could not run with early version of PHP.

No thanks. Closure? Namespace?


I'm not sure what you're getting at. Is there reason to believe that this will not work with PHP >= 5.3?


It will be is not structured using Namespaces, which can be annoying if you are using them on a day to day basis and want to integrate something like Yaf that doesn't use them.


You could always write your own namespaced shim classes if it matters that much to you.


closures and anonymous functions, to my mind, were a jailbreak for PHP.


[me]# pecl remote-info yaf Package details: ================ Latest 2.1.3 Installed - no - Package yaf License PHP Category System Summary PHP Framework in PHP extension Description Yaf is a PHP framework similar to zend framework, which is written in c and built as PHP extension.

            Windows binaries can be found at <a
            href="http://code.google.com/p/yafphp/downloads/list">http://code.google.com/p/yafphp/downloads/list</a>
[me]# pecl install yaf pecl/yaf requires PHP (version >= 5.1.0, version <= 5.3.6), installed version is 5.3.8 No valid packages found

So... 2.1.3 doesn't know how to work with 5.3.8. I'm not upgrading to 5.4.0 to test this right now. Any hacks to get around this?


Is the source for this anywhere like GitHub where it can be looked over?

EDIT: Appears to be on Google Code: http://code.google.com/p/yafphp/source/browse/



It is interesting that there are no models.

This seems to be a glorified front controller integrated with a templating engine.

It is really cool that they did this as a PECL extension. I had a PHP framework many years ago that we considered converting to a PECL extension (http://sourceforge.net/projects/cep/).


Generally, models can be left up to the developer to create based on business logic. Take for example, Zend Framework. It provides an active record like pattern in its Zend_Db_Table but expects the individual application to create the models that use (not inherit) Zend_Db_Table.


Seems like a missed opportunity to me. Lots can be done with "magic methods" for models. Not sure how hard that is in a PECL extension.


It kind of reminds me of ASP.NET C# MVC, just glancing at the example page: http://au.php.net/manual/en/yaf.examples.php

Not being particularly proficient in PHP, is the 'Class myClass extends baseClass' syntax normal? I've never seen it before.



I actually wrote a PHP framework with the intention of mimicing the ASP.NET MVC file structure layout and "convention over configuration" ideology, though it's not compiled so it's probably slower than YAF. http://www.killstone.net/software/killstone-php-framework


Syntax yes, code standard, no. Most standards would prescribe:

    class MyClass extends BaseClass



The OOP parts in the PHP manual haven't been given anywhere near enough care and attention than the old bits. Unless it's core functionality, good luck finding decent doc for the extensions listed.

    Class:nameOfFunction - *the Name of Function purpose*
Some of the SPL classes are equally amusing, especially when you get as far as `RecursiveIteratorIterator` and, to recursively scan a directory (OOP stylee):

    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/directory'), RecursiveIteratorIterator::SKIP_DOTS);
Now I make use of that and, syntax aside, it's pretty handy for the stuff you get back from it, but for the best part some of these PHP extensions are a waste of time. There's bugger all documentation and, quite often, they're missing basic methods that you can already do procedurally.

Why would anyone want to spend time figuring out this framework extension, or the OOP PHP stuff like SPL and Imagick, with no documentation, when there are plenty well established ones out there that have mountains of it?


There's more like that elsewhere in the PHP docs (at least, last time I went looking).

PHP used to be minutely documented, with copious examples, which was why it was so easy to learn. Now, not so much, it seems.


So use with blitz template engine as is extension

http://alexeyrybak.com/blitz/blitz_en.html

You had blazing speed and performance


Why?


Why not?


:) I mean why, except for "Why not?"


One of the good things is it is not using the PHP namespace, e.g. use Zend\Controller\Action\HelperBroker;


You've never tried to integrate two PHP projects, eh? As in: Whoops, you guys also have a class named "user"?


When did they launch this?


Seems it was published in June: http://pecl.php.net/package/yaf

Keep in mind it's a PECL extension, so it's not bundled with PHP.


Anyone else see that this looks almost identical to Zend Framework?


Yup. We use Zend at work and I did a double-take at the example code. "Wait, my code looks exactly like this..."


"Yaf is a PHP framework similar to zend framework, which is written in c and built as PHP extension" (http://code.google.com/p/yafphp/)


I'll stick to CI, thanks.

This smells like another Zend product, and Zend framework was just a pain, in my experience.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: