Giter Site home page Giter Site logo

simplepie / simplepie-ng Goto Github PK

View Code? Open in Web Editor NEW
41.0 6.0 7.0 61.96 MB

Don't use this yet.

Home Page: https://simplepie.github.io/simplepie-ng/

License: Apache License 2.0

PHP 91.99% Python 1.89% HTML 4.08% Makefile 1.46% Shell 0.05% XSLT 0.13% Roff 0.39%
php xml rss atom jsonfeed middleware-handlers simplepie simplepie-ng middleware w3c

simplepie-ng's Introduction



SimplePie NG

Don't use this yet. Yes, this project is still active… just as I have time.

SimplePie NG is a modern, next-generation PHP package for working with syndication feeds. It has been written from the ground-up to take advantage of the modern features of PHP 7.3+.

It starts with a completely different kind of thinking, and more than 15 years of experience in software engineering and open-source. It is written with a view of PHP from today and beyond, and is being built in such a way that greater community involvement should be far easier from much earlier in the project's life.

See the Documentation or the API Reference.

Badges

Health

Open Issues Pull Requests Contributors Repo Size GitHub Commit Activity GitHub Last Commit

Quality

Travis branch Coveralls Code Quality Symfony Insight

Social

Author Follow Blog Stars

Compliance

License

Coding Standards

PSR-1/2/5/12/19 are a solid foundation, but are not an entire coding style by themselves. We automate a large part of our style requirements using PHP CS Fixer and PHP CodeSniffer. (The things that we cannot yet automate are documented in the SimplePie NG Coding Standards.)

These can be applied/fixed automatically by running the (lightweight) linter:

make lint

Additionally, in our quest to write excellent code, we use a variety of tools to help us catch issues with what we've written, including:

Type Description
Linting Tools PHP CS Fixer, PHP CodeSniffer
QA Tools PDepend, PHPLOC, PHP Copy/Paste Detector, PHP Code Analyzer
Static Analysis Phan, PHPStan, Psalm, PHP Dependency Analysis

These reports can be generated by running the (heavyweight) analyzer:

make analyze

Please Support or Sponsor Development

The SimplePie project is a labor of love. Development of the next-generation of SimplePie was started in June 2017 as because it's a project I love, and I believe our community would benefit from this tool.

If you use SimplePie — especially to make money — it would be swell if you could kick down a few bucks. As the project grows, and we start leveraging more services and architecture, it would be great if it didn't all need to come out of my pocket.

You can also sponsor the development of a particular feature. If there's a feature that you want to see implemented, and I believe it's the right fit for the SimplePie project, you can sponsor the development of the feature to get it prioritized.

Your contributions are greatly and sincerely appreciated. See the Sponsor button along the top of the page for more information.

simplepie-ng's People

Contributors

dependabot[bot] avatar fossabot avatar skyzyx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

simplepie-ng's Issues

Clarify shared hosting providers non-support

Quoting the readme:

Will almost certainly not work with shared hosting providers. Time to get a grown-up server.

Since this is supposed to be just a PHP library, why would that not work on shared hosting providers?

The support for shared hosting providers is still important because, for example, for students, especially in less wealthy countries, shared hosting might be the only way to afford a “private cloud”. I was also relying on that until very recently. And even if one has the money, running a server takes significantly more effort.

Also, the ability to deploy applications to a shared hosting is the only reason why I still use PHP at all – on my own server I can just use the better languages.

[Insight] Commented code should not be committed - in src/Type/Entry.php, line 54

in src/Type/Entry.php, line 54

Commented out code reduces readability and lowers the code confidence for other developers. If it's common usage for debug, it should not be committed. Using a version control system, such code can be safely removed.

        if ($node) {
            $this->logger = $logger ?? new NullLogger();
            $this->node   = $node;

            // foreach ($this->node->attributes as $attribute) {
            //     $this->{$attribute->name} = new Node($attribute);
            // }
        }
    }

    /**

Posted from SensioLabsInsight

Compat: missing_quote_in_attr

Should we leave bunk HTML alone? Or pass it through an HTML5 parser?

FeedParser.py passes it through an HTML5 parser.

Modeling `Type\Author` for h-feed.

this looks awesome @skyzyx! Glad you've got the time to take this on.

Just wanted to mention an issue I've had when retrofitting microformats into SimplePie OG (yes I think I will use that term...) The issue is that h-entry's have a wider vocabulary for authors via h-card than traditional feeds. So instead of just being a name or email address they can be full html markup with profile images, urls, etc. This makes it hard to be an afterthought because you've probably made a few assumptions about content types for author before implementing it.

Anyway feel free to close this issue.

[Insight] Object parameters should be type hinted - in src/Type/Feed.php, line 184

in src/Type/Feed.php, line 184

The parameter link, which is an object, should be typehinted.

                $links = $this->getComplexMultipleValues($this->getRoot(), $nodeName, $args[0] ?? null);

                if (isset($args[1])) {
                    $relFilter = $args[1];

                    return \array_values(\array_filter($links, static function ($link) use ($relFilter) {
                        return $relFilter === $link->getRel()->getValue();
                    }));
                }

                return $links;

Posted from SensioLabsInsight

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.